使用传输将对象从一个存储桶目录文件夹复制到另一个存储桶文件夹

时间:2019-10-30 17:36:10

标签: google-cloud-platform transfer

我想使用Google Transfer将Bucket-1中特定目录中的所有文件夹/文件复制到Bucket-2的根目录中。

尝试将转移与过滤器选项结合使用,但不复制任何内容。

任何使它在传输中或逐步实现功能的指针都将受到赞赏。

3 个答案:

答案 0 :(得分:0)

在项目的Cloud Shell中尝试

gsutil cp -r gs://bucket1/foldername gs://bucket2

答案 1 :(得分:0)

我转载了您的问题,并使用gsutil为我工作。 例如:

gsutil cp -r gs://SourceBucketName/example.txt gs://DestinationBucketName

此外,我尝试使用“传输”选项进行复制,但它也可以正常工作。我使用“转移”选项完成的步骤如下:

1-创建新的传输作业 面板:“选择来源”:

2-选择您的来源,例如Google Cloud Storage存储桶

3-选择要复制数据的存储桶。

4-在“使用这些前缀传输文件”字段上添加您的数据(我使用了“ example.txt”)

面板“选择目的地”:

5-选择目标存储桶

面板“配置传输”:

6-如果您想立即完成传输,请立即运行。

7-按“创建”。

有关从存储桶复制到另一个存储桶的更多信息,可以检查official documentation

答案 2 :(得分:0)

因此,这里需要考虑几件事:

  1. 您必须记住,Google Cloud Storage存储桶不会像您期望的那样对待子目录。对于存储桶,基本上是文件名的所有部分。您可以在How Subdirectories Work文档中找到有关此信息的更多信息。

  2. 以前的原因也是您无法传输“目录”中文件的原因,并且希望仅看到文件名出现在目标存储桶的根目录中。举个例子:

    • 如果文件位于gs://my-bucket/my-bucket-subdirectory/myfile.txt,将其传输到第二个存储桶后,其名称中仍将包含子目录,因此结果为:gs://my-second-bucket/my-bucket-subdirectory/myfile.txt
  3. 这就是为什么,如果您对自动化此过程感兴趣,则绝对应该尝试Google Cloud Storage Client Libraries

  4. 此外,您还可以将GCS Client与Google Cloud Functions一起使用。但是,如果您确实需要GCF提供的事件触发器,我只是建议您这样做。如果您只是想让传输正常运行(例如在cron作业上),您仍然可以在Cloud Function之外的其他地方使用GCS Client。

此外,在您以后的帖子中,请尝试提供尽可能多的相关信息。作为示例,很高兴知道您的存储桶中有什么文件结构以及作为输出获得了什么。而且,如果您可以立即提供用例,还可以防止其他用户提出不适用于您需求的解决方案。