gsutil cp 创建嵌套目录
gsutil cp creates nested directory
我正在尝试将一个文件夹 (/data/out
) 从 Cloud Build 复制到 Google Cloud Storage:
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
volumes:
- name: 'vol1'
path: '/data'
entrypoint: 'gsutil'
args:
- -m
- cp
- -r
- /data/out
- gs://mybucket/files
第一次 运行 时,/data/out 中的所有内容都被复制到存储桶中,这正是我想要的。
当我 运行 第二次 overwrite/update 文件时,有一个文件夹 /files/out
,所以新文件在 mybucket/files/out/*
而不是 mybucket/files/*
.
我该如何解决这个问题?
我尝试添加另一个步骤以在再次复制之前删除该文件夹 (rm -r gs://mybucket/files
),但是此步骤第一次失败,因为该文件夹尚不存在,导致构建 fail/stop完全。
我将上一步中生成的本地文件夹复制到 GS 存储桶中。随后构建 运行 并覆盖文件。
我用过:
- name: 'gcr.io/cloud-builders/gsutil'
args: [ 'cp', '-r',
'./public',
'gs://{BUCKET_NAME}/test' ]
感谢
,终于让这个与 rsync
而不是 cp
一起工作
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
id: copy
volumes:
- name: 'vol1'
path: '/data'
entrypoint: 'gsutil'
args:
- -m
- rsync
- -r
- -d
- /data/out/
- gs://mybucket/folder
我正在尝试将一个文件夹 (/data/out
) 从 Cloud Build 复制到 Google Cloud Storage:
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
volumes:
- name: 'vol1'
path: '/data'
entrypoint: 'gsutil'
args:
- -m
- cp
- -r
- /data/out
- gs://mybucket/files
第一次 运行 时,/data/out 中的所有内容都被复制到存储桶中,这正是我想要的。
当我 运行 第二次 overwrite/update 文件时,有一个文件夹 /files/out
,所以新文件在 mybucket/files/out/*
而不是 mybucket/files/*
.
我该如何解决这个问题?
我尝试添加另一个步骤以在再次复制之前删除该文件夹 (rm -r gs://mybucket/files
),但是此步骤第一次失败,因为该文件夹尚不存在,导致构建 fail/stop完全。
我将上一步中生成的本地文件夹复制到 GS 存储桶中。随后构建 运行 并覆盖文件。
我用过:
- name: 'gcr.io/cloud-builders/gsutil'
args: [ 'cp', '-r',
'./public',
'gs://{BUCKET_NAME}/test' ]
感谢
rsync
而不是 cp
一起工作
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
id: copy
volumes:
- name: 'vol1'
path: '/data'
entrypoint: 'gsutil'
args:
- -m
- rsync
- -r
- -d
- /data/out/
- gs://mybucket/folder