雲端服務整合允許開發者透過 Go 語言存取關鍵服務,例如物件儲存和機器學習。要整合 Amazon S3,需要使用 github.com/aws/aws-sdk-go/s3;要整合 Google Cloud Vision API,需要使用 cloud.google.com/go/vision。
Go 函數中的雲端服務整合
#雲端服務提供諸如物件儲存、資料分析和機器學習等關鍵服務。透過將雲端服務整合到應用程式中,開發者可以存取這些功能,而無需自己開發和維護基礎架構。
Go 是一種流行的程式語言,憑藉其出色的並發性和效能,非常適合雲端開發。 Go 提供了幾個函式庫和套件,可簡化與雲端服務的整合。
使用 Go 整合 Amazon S3
Amazon S3 (Simple Storage Service) 是一款流行的物件儲存服務。若要使用 Go 整合 Amazon S3,可以使用 github.com/aws/aws-sdk-go/s3
套件。
import ( "context" "fmt" "io" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3" ) // uploadFileToS3 上传文件到 Amazon S3 存储桶中。 func uploadFileToS3(w io.Writer, bucket, key, filePath string) error { // 创建一个新的 S3 客户端。 sess := session.Must(session.NewSession()) client := s3.New(sess) // 使用文件路径打开一个文件。 file, err := os.Open(filePath) if err != nil { return fmt.Errorf("os.Open: %v", err) } defer file.Close() // 上传文件到指定的存储桶和键中。 _, err = client.PutObjectWithContext(context.Background(), &s3.PutObjectInput{ Bucket: aws.String(bucket), Key: aws.String(key), Body: file, }) if err != nil { return fmt.Errorf("PutObjectWithContext: %v", err) } fmt.Fprintf(w, "Uploaded file to %s/%s\n", bucket, key) return nil }
使用 Go 整合 Google Cloud Vision API
Google Cloud Vision API 是一種影像分析服務。若要使用 Go 整合 Google Cloud Vision API,可以使用 cloud.google.com/go/vision
套件。
import ( "context" "fmt" "log" vision "cloud.google.com/go/vision/apiv1" "cloud.google.com/go/vision/v2/apiv1/visionpb" ) // detectLabelsFromGCS 分析存储在 Google Cloud Storage 的图像。 func detectLabelsFromGCS(w io.Writer, gcsURI string) error { ctx := context.Background() c, err := vision.NewImageAnnotatorClient(ctx) if err != nil { return fmt.Errorf("vision.NewImageAnnotatorClient: %v", err) } defer c.Close() image := &visionpb.Image{ Source: &visionpb.ImageSource{ GcsImageUri: gcsURI, }, } annotations, err := c.DetectLabels(ctx, image, nil, 10) if err != nil { return fmt.Errorf("DetectLabels: %v", err) } if len(annotations) == 0 { fmt.Fprintln(w, "No labels found.") } else { fmt.Fprintln(w, "Labels:") for _, annotation := range annotations { fmt.Fprintln(w, annotation.Description) } } return nil }
以上是golang函數的雲端服務集成的詳細內容。更多資訊請關注PHP中文網其他相關文章!