我有一個名為“Project”的 Amazon S3 存盤桶,我想在 Project/screenshots/hotels 中查找檔案數。我只使用 Go SDK 獲取整個 s3 中的總檔案,同時僅指定存盤桶名稱,并在指定存盤桶名稱中的整個路徑時出錯。
https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/go/example_code/s3/s3_list_objects.go
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"os"
)
// Lists the items in the specified S3 Bucket
//
// Usage:
// go run s3_list_objects.go BUCKET_NAME
func main() {
bucket := "Project/screenshots/hotels"
// Initialize a session in us-west-2 that the SDK will use to load
// credentials from the shared credentials file ~/.aws/credentials.
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-east-1")},
)
var temp int64 = 1000000000
var maxKeys *int64
maxKeys = &temp
// Create S3 service client
svc := s3.New(sess)
// Get the list of items
resp, err := svc.ListObjectsV2(&s3.ListObjectsV2Input{Bucket: aws.String(bucket),MaxKeys: maxKeys})
if err != nil {
exitErrorf("Unable to list items in bucket %q, %v", bucket, err)
}
for _, item := range resp.Contents {
fmt.Println("Name: ", *item.Key)
fmt.Println("Last modified:", *item.LastModified)
fmt.Println("Size: ", *item.Size)
fmt.Println("Storage class:", *item.StorageClass)
fmt.Println("")
}
fmt.Println("Found", len(resp.Contents), "items in bucket", bucket)
fmt.Println("")
}
func exitErrorf(msg string, args ...interface{}) {
fmt.Fprintf(os.Stderr, msg "\n", args...)
os.Exit(1)
}
uj5u.com熱心網友回復:
“路徑”的其余部分不是存盤桶的一部分。您想將 設定Prefix為screenshots/hotels/。請參閱ListObjectV2Input 檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/393702.html
標籤:亚马逊网络服务 去 亚马逊-s3 软件开发工具包 aws-sdk
上一篇:查找字串陣列中最常見的元素GO
下一篇:資料存盤事務-達到物體寫入限制
