chore: 移出一次性核对小工具(不留在仓库里)
build / build (push) Successful in 1m16s

This commit is contained in:
姚章浩
2026-10-29 06:22:00 +08:00
parent cb0090802b
commit 2e39e49569
-45
View File
@@ -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)))
}
}
}