diff --git a/_s3get/main.go b/_s3get/main.go deleted file mode 100644 index de72563..0000000 --- a/_s3get/main.go +++ /dev/null @@ -1,45 +0,0 @@ -package main - -import ( - "context" - "crypto/sha256" - "encoding/hex" - "fmt" - "io" - "os" - - "github.com/aws/aws-sdk-go-v2/aws" - "github.com/aws/aws-sdk-go-v2/credentials" - "github.com/aws/aws-sdk-go-v2/service/s3" -) - -// 列出并读回目标桶里的对象,打印 键/字节/sha256:资源字节是否真在目标存储里,只能这样核。 -func main() { - endpoint, bucket := os.Getenv("S3_ENDPOINT"), os.Getenv("S3_BUCKET") - client := s3.New(s3.Options{ - Region: "us-east-1", - BaseEndpoint: aws.String(endpoint), - Credentials: credentials.NewStaticCredentialsProvider(os.Getenv("S3_KEY"), os.Getenv("S3_SECRET"), ""), - UsePathStyle: true, - }) - ctx := context.Background() - pages := s3.NewListObjectsV2Paginator(client, &s3.ListObjectsV2Input{Bucket: aws.String(bucket)}) - for pages.HasMorePages() { - page, err := pages.NextPage(ctx) - if err != nil { - fmt.Println("list error:", err) - os.Exit(1) - } - for _, item := range page.Contents { - out, err := client.GetObject(ctx, &s3.GetObjectInput{Bucket: aws.String(bucket), Key: item.Key}) - if err != nil { - fmt.Println("get error:", item.Key, err) - os.Exit(1) - } - hash := sha256.New() - size, _ := io.Copy(hash, out.Body) - out.Body.Close() - fmt.Printf("%s\t%d\t%s\n", *item.Key, size, hex.EncodeToString(hash.Sum(nil))) - } - } -} \ No newline at end of file