【发布时间】:2022-01-14 09:29:41
【问题描述】:
我想将文件从一个文件夹复制到同一个 S3 存储桶上的另一个文件夹。执行此操作时出现错误NoSuchKey: The specified key does not exist 我的代码如下所示。
sess, err := session.NewSession(&aws.Config{Region: aws.String("ap-south-1")})
if err != nil {
return nil, err
}
Oldpath := "folder1/folder2/a+b.pdf"
newBaseFolder := "folder3"
svc := s3.New(sess)
bucketName := "mybucket.test"
source := bucketName + "/" + oldPath // Oldpath = "folder1/folder2/a+b.pdf"
//newBaseFolder = "folder3"
newPath := newBaseFolder + "/" + strings.SplitN(oldPath, "/", 2)[1] //newPath = "folder3/folder2/a+b.pdf"
_, err = svc.CopyObject(&s3.CopyObjectInput{
Bucket: aws.String(bucketName), // bucketName = "mybucket.test"
CopySource: aws.String(url.PathEscape(source)),
Key: aws.String(newPath)})
if err != nil {
return nil, err
}
错误信息
{
"err": "NoSuchKey: The specified key does not exist."
"status code": 404
}
【问题讨论】:
-
你的变量的值是多少?
-
右边写成cmets
-
在您的示例中,变量
bucket似乎未定义。 -
已更新,谢谢指出:)
-
再次检查
mybucket.test/folder1/folder2/a.pdf确实存在。如果是,我会在您使用它们之前立即记录(或至少打印)您的存储桶和路径变量。您的 cmets 有助于了解 假定 正在发生的事情,但他们不保证这实际上是正在发生的事情。如果没有明显问题,请使用 CLI 手动尝试相同的操作 :)
标签: amazon-web-services go amazon-s3