我的Google Cloud存储桶中有大量数据。我必须将所有文件复制到另一个项目存储桶中。但是主要的问题是,在此存储桶中,我创建了一些文件夹,并且该文件夹下有许多子文件夹,所有子文件夹都有数据。因此,当我使用普通的gsutil copy命令时,它将复制所有数据以及文件夹。 我需要帮助来解决此问题。因为从一个项目复制到另一个项目存储区需要太多时间。
答案 0 :(得分:0)
这是log
子类别中的第二个选项。
答案 1 :(得分:0)
使用不带-r选项的gsutil cp
命令。
-R和-r选项是同义词。导致目录, 存储桶和存储桶子目录以递归方式复制。 如果您忽略使用此选项进行上传,则gsutil将 复制找到的所有文件并跳过任何目录。同样, 忽略为下载指定此选项将导致 gsutil复制当前存储区目录中的所有对象 级别,并跳过所有子目录。
答案 2 :(得分:0)
如果我很好理解,您想将所有文件从一个存储桶复制到另一个存储桶,但是您不想具有相同的层次结构,而是希望所有文件都位于根路径中。
如今,无法使用gsutil进行此操作,但是您可以使用脚本来完成此操作,这里有我的解决方案:
* * * * * script/to/execute 2>&1
答案 3 :(得分:0)
如Akash Dathan所述,您可以使用 Cloud Storage Transfer Service 移动存储桶内容。我建议您看一下这份Moving and Renaming Buckets指南,在其中可以找到执行此任务所需的步骤。
请记住以下要求:
注意。如果您对源存储桶和目标存储桶具有 'storage.buckets.setIamPolicy' 权限,则创建传输作业将被授予该服务帐户需要完成传输所需的源和目标权限。
答案 4 :(得分:0)
您可以使用此命令将所有文件放在根路径中。
gsutil cp 'gs://[YOUR_FIRST_BUCKET_NAME]/*' gs://[YOUR_SECOND_BUCKET_NAME]
如果您的存储桶中有嵌套目录,请使用以下命令:
gsutil cp -r 'gs://[YOUR_FIRST_BUCKET_NAME]/*' gs://[YOUR_SECOND_BUCKET_NAME]
请注意第一个命令周围的单引号。 如果您需要更多高级功能,可以看看Wildcard Names。