我想知道如何在同一个存储桶中移动目录。 使用 CopyObject 将一个特定文件移动到同一个存储桶中但不是目录时,我没有遇到任何问题
这是我在运行下面的代码后遇到的错误。
无法将项目从存储桶“bucketName”复制到存储桶“bucketName”,NoSuchKey:指定的键不存在。
dir := "newPlace/directory"
source := bucket + "/directory"
// Copy the item
_, err = svc.CopyObject(&s3.CopyObjectInput{Bucket: aws.String(bucket), CopySource: aws.String(source), Key: aws.String(dir)})
if err != nil {
exitErrorf("Unable to copy item from bucket %q to bucket %q, %v", bucket, bucket, err)
}
//Wait to see if the item got copied
err = svc.WaitUntilObjectExists(&s3.HeadObjectInput{Bucket: aws.String(bucket), Key: aws.String(dir)})
if err != nil {
exitErrorf("Error occurred while waiting for item %q to be copied to bucket %q, %v", bucket, item, bucket, err)
}
fmt.Printf("Item %q successfully copied from bucket %q to bucket %q\n", item, bucket, bucket)
我最后的解决方案是从我的目录中复制并删除每个文件,但令我惊讶的是他们没有在 SDK 中实现移动目录,而且 aws-cli-s3 中也提供了 mv
提前致谢
最佳答案
SDK 确实支持批量操作。这应该允许您使用 batch download iterator并编写你自己的 iterator for upload
关于go - aws-sdk-go s3 在存储桶之间移动目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334556/