gpt4 book ai didi

google-cloud-platform - 使用上传云存储操作替换文件夹

转载 作者:行者123 更新时间:2023-12-01 23:18:59 26 4
gpt4 key购买 nike

我在 github 操作中有以下工作流:

name: Move artifacts

on:
push:
branches:
- main

jobs:
move_artifacts:
name: Move artifacts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- id: upload-files
uses: google-github-actions/upload-cloud-storage@main
with:
credentials: ${{ secrets.gcp_credentials }}
path: .
destination: my-bucket/my-folder/

并且,当此工作流被触发时,存储库中的文件将被复制到 GCS 中,但是,如果 GCS 文件夹中还有其他文件,则这些文件不会被删除。

如何以 my-bucket/my-folder 的内容与 repo 的内容完全相同的方式进行上传?如何删除不再在存储库中的文件?

最佳答案

您可以使用以下 Github 操作在目标中拥有与源中相同的文件:

name: Copy files to GCS
on:
push:
branches: [main]

jobs:
copy-files-gcs:
name: Copy directory to GCS
runs-on: ubuntu-latest

# Add "id-token" with the intended permissions.
permissions:
contents: 'read'
id-token: 'write'

steps:
- name: Checkout
uses: actions/checkout@v3

- id: 'auth'
uses: 'google-github-actions/auth@v0'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v0'

- name: 'Use gcloud CLI'
run: 'gsutil -m rsync -R -d kavach gs://<your-bucket>'

同步目标文件夹中文件的关键是 rsync 的 -d 标志,它删除目标中不存在于源中的文件。

关于google-cloud-platform - 使用上传云存储操作替换文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68373383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com