我想使用Google Transfer将Bucket-1中特定目录中的所有文件夹/文件复制到Bucket-2的根目录中。
尝试将转移与过滤器选项结合使用,但不复制任何内容。
任何使它在传输中或逐步实现功能的指针都将受到赞赏。
答案 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)
因此,这里需要考虑几件事:
您必须记住,Google Cloud Storage存储桶不会像您期望的那样对待子目录。对于存储桶,基本上是文件名的所有部分。您可以在How Subdirectories Work文档中找到有关此信息的更多信息。
以前的原因也是您无法传输“目录”中文件的原因,并且希望仅看到文件名出现在目标存储桶的根目录中。举个例子:
gs://my-bucket/my-bucket-subdirectory/myfile.txt
,将其传输到第二个存储桶后,其名称中仍将包含子目录,因此结果为:gs://my-second-bucket/my-bucket-subdirectory/myfile.txt
这就是为什么,如果您对自动化此过程感兴趣,则绝对应该尝试Google Cloud Storage Client Libraries。
此外,您还可以将GCS Client与Google Cloud Functions一起使用。但是,如果您确实需要GCF提供的事件触发器,我只是建议您这样做。如果您只是想让传输正常运行(例如在cron作业上),您仍然可以在Cloud Function之外的其他地方使用GCS Client。
此外,在您以后的帖子中,请尝试提供尽可能多的相关信息。作为示例,很高兴知道您的存储桶中有什么文件结构以及作为输出获得了什么。而且,如果您可以立即提供用例,还可以防止其他用户提出不适用于您需求的解决方案。