【问题标题】:aws-sdk-go s3 move directory between bucketaws-sdk-go s3 在存储桶之间移动目录
【发布时间】:2018-04-30 06:44:03
【问题描述】:

我想知道如何在同一个存储桶中移动目录。 使用 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 中也可用

提前致谢,

【问题讨论】:

  • 我不认为 S3 APi 提供“文件夹”移动,因为 S3 实际上没有文件夹,它只有键可以具有 看起来像的前缀目录路径。 AWS CLI 可能通过复制和删除来模拟“文件夹移动”。

标签: go amazon-s3 aws-sdk-go


【解决方案1】:

SDK 支持批量操作。这应该允许您使用batch download iterator 并编写自己的iterator for upload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多