0

我想知道如何在同一个存储桶中移动目录。使用 CopyObject 将一个特定文件移动到同一个存储桶中没有任何问题,但不是目录

这是我在运行下面的代码后遇到的错误。

Unable to copy item from bucket "bucketName" to bucket "bucketName", NoSuchKey: The specified key does not exist.

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 中实现移动目录,并且 mv 在 aws-cli-s3 中也可用

提前致谢,

4

1 回答 1

0

SDK 确实支持批量操作。这应该允许您使用批量下载迭代器并编写自己的迭代器进行上传

于 2017-11-16T22:23:20.863 回答