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