gpt4 book ai didi

file - 如何使用 go in lambda 安全地检查 S3 存储桶中是否存在文件?

转载 作者:行者123 更新时间:2023-12-01 22:28:41 31 4
gpt4 key购买 nike

我正在为我的项目开发一项服务,该服务用于同步 AWS 中的 Lambdas 工作。这个想法是编写一个 TrackerFile 模块,它将在 S3 上存储结构。每次我使用跟踪器时,我都会检查是否有分配给被调用跟踪器名称的文件。

我不知道如何安全地检查 S3 上是否存在具有给定名称的文件。如果文件存在,您能否展示一段能够返回 (bool, err) 的示例代码,其中 bool 为 True?

最佳答案

确保您具有以下权限:
"s3:GetObject",
"s3:ListBucket",
关于安全性,AWS 刚刚为 S3 引入了强一致性

s3svc = s3.New(sess)

func keyExists(bucket string, key string) (bool, error) {
_, err := S3Svc().HeadObject(&s3.HeadObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(key),
})
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case "NotFound": // s3.ErrCodeNoSuchKey does not work, aws is missing this error code so we hardwire a string
return false, nil
default:
return false, err
}
}
return false, err
}
return true, nil
}

关于file - 如何使用 go in lambda 安全地检查 S3 存储桶中是否存在文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57697095/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com