google-cloud-platform - 在 Google Cloud Storage 中的项目/存储桶之间同步文件
问题描述
我正在尝试在 Google Cloud 上的两个项目和两个存储桶之间同步文件。
但是,我只想复制不在A
但不在B
(目标)中的文件。A
覆盖和B
(首选)中的文件很好。
当我执行以下操作时:
- 在我的存储桶中,我创建了一个文件夹
test
并添加了A
里面的文件夹file-1
- 我运行以下命令:
gsutil cp -r gs://from-project.appspot.com/test gs://to-project.appspot.com/test2
这工作正常,我的项目存储桶中A
的文件夹中有该文件夹。test2
那么问题就出现了:
- 我添加了一个文件夹
B
,并在A
我删除file-1
和添加的文件夹内file-2
(以测试文件的概念是 inA
但不是 inB
)。 - 但是,当我运行相同的命令时,我没有得到它只
file-2
被复制并且我有一个额外的文件夹B
,而是我在其中找到了一个test2
名为test
where的新文件夹A
,B
但没有file-1
ina
(基本上是新情况的副本)。
为什么会发生这种情况,如何防止这种情况启用同步?
解决方案
gsutil rsync
命令首选同步两个桶的内容。
您可以使用该-d
选项删除源存储桶下未找到的目标存储桶下的文件。不过要小心,因为它可以删除目标存储桶中的文件。
推荐阅读
- php - php正则表达式:如何匹配数字+字母+中文
- javascript - Javascript Input Datalist 不断添加选项
- pandas - 获取 pandas CSV 嗅探器方言信息
- android - 在前台有两个 Android 活动
- flutter - 在小部件树中检测到 Flutter Duplicate GlobalKeys
- r - R - 如何在不使用函数的情况下根据一组条件执行某些代码块?
- android - 在项目或库中找不到布局文件中引用的类 `androidx.constraintlayout.widget`
- android - 以编程方式下载 Playstore 统计信息 - 控制对 Google Cloud Storage 的访问
- amazon-web-services - aws macOS 实例更新用户密码
- sql - 提高用于查询 GraphQL 连接的 SQL 代码的性能