<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Google Cloud on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/google-cloud/</link>
        <description>Recent content in Google Cloud on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sun, 13 Apr 2025 15:26:17 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/google-cloud/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>google-cloud-go</title>
        <link>https://producthunt.programnotes.cn/en/p/google-cloud-go/</link>
        <pubDate>Sun, 13 Apr 2025 15:26:17 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/google-cloud-go/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1456318456940-4da16c8fc9bc?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDQ1MjkwODV8&amp;ixlib=rb-4.0.3" alt="Featured image of post google-cloud-go" /&gt;&lt;h1 id=&#34;googleapisgoogle-cloud-go&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/googleapis/google-cloud-go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;googleapis/google-cloud-go&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;google-cloud-client-libraries-for-go&#34;&gt;Google Cloud Client Libraries for Go
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/cloud.google.com/go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://pkg.go.dev/badge/cloud.google.com/go.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Go Reference&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Go packages for &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Cloud Platform&lt;/a&gt; services.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go get cloud.google.com/go/firestore@latest &lt;span class=&#34;c1&#34;&gt;# Replace firestore with the package you want to use.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Some of these packages are under development, and may occasionally
make backwards-incompatible changes.&lt;/p&gt;
&lt;h2 id=&#34;supported-apis&#34;&gt;Supported APIs
&lt;/h2&gt;&lt;p&gt;For an updated list of all of our released APIs please see our
&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/go/docs/reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;reference docs&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;go-versions-supported&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;#supported-versions&#34; &gt;Go Versions Supported&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Our libraries are compatible with the two most recent major Go
releases, the same &lt;a class=&#34;link&#34; href=&#34;https://go.dev/doc/devel/release#policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;policy&lt;/a&gt; the Go
programming language follows. This means the currently supported versions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go 1.23&lt;/li&gt;
&lt;li&gt;Go 1.24&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;authentication&#34;&gt;Authentication
&lt;/h2&gt;&lt;p&gt;By default, each client library will use &lt;a class=&#34;link&#34; href=&#34;https://developers.google.com/identity/protocols/application-default-credentials&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Application Default Credentials&lt;/a&gt;
(ADC) to automatically configure the credentials used in calling the API endpoint.
When using the libraries in a Google Cloud Platform environment such as Compute
Engine, Kubernetes Engine, or App Engine, no additional authentication steps are
necessary. See &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/docs/authentication&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Authentication methods at Google&lt;/a&gt;
and &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/docs/authentication/client-libraries&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Authenticate for using client libraries&lt;/a&gt;
for more information.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;NewClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ctx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For applications running elsewhere, such as your local development environment,
you can use the &lt;code&gt;gcloud auth application-default login&lt;/code&gt; command from the
&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Cloud CLI&lt;/a&gt; to set user credentials in
your local filesystem. Application Default Credentials will automatically detect
these credentials. See &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/docs/authentication/set-up-adc-local-dev-environment&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Set up ADC for a local development
environment&lt;/a&gt;
for more information.&lt;/p&gt;
&lt;p&gt;Alternately, you may need to provide an explicit path to your credentials. To authenticate
using a &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/docs/authentication#service-accounts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;service account&lt;/a&gt;
key file, either set the &lt;code&gt;GOOGLE_APPLICATION_CREDENTIALS&lt;/code&gt; environment variable to the path
to your key file, or programmatically pass
&lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/google.golang.org/api/option#WithCredentialsFile&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;option.WithCredentialsFile&lt;/code&gt;&lt;/a&gt;
to the &lt;code&gt;NewClient&lt;/code&gt; function of the desired package. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;NewClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ctx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;option&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;WithCredentialsFile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;path/to/keyfile.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;You can exert even more control over authentication by using the
&lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/cloud.google.com/go/auth/credentials&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;credentials&lt;/a&gt; package to
create an &lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/cloud.google.com/go/auth#Credentials&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;auth.Credentials&lt;/a&gt;.
Then pass &lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/google.golang.org/api/option#WithAuthCredentials&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;option.WithAuthCredentials&lt;/code&gt;&lt;/a&gt;
to the &lt;code&gt;NewClient&lt;/code&gt; function:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;credentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;DetectDefault&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;credentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;DetectOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;...&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;NewClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ctx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;option&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;WithAuthCredentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;Contributions are welcome. Please, see the
&lt;a class=&#34;link&#34; href=&#34;https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CONTRIBUTING&lt;/a&gt;
document for details.&lt;/p&gt;
&lt;p&gt;Please note that this project is released with a Contributor Code of Conduct.
By participating in this project you agree to abide by its terms.
See &lt;a class=&#34;link&#34; href=&#34;https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Contributor Code of Conduct&lt;/a&gt;
for more information.&lt;/p&gt;
&lt;h2 id=&#34;links&#34;&gt;Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/go/home&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Go on Google Cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/go/getting-started&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Getting started with Go on Google Cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/appengine/docs/standard/go/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;App Engine Quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/functions/docs/quickstart-go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloud Functions Quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/run/docs/quickstarts/build-and-deploy#go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloud Run Quickstart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
