在 Google Cloud Storage 中的项目/存储桶之间同步文件

问题描述 投票:0回答:2

我正在尝试同步 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
    (为了测试文件的概念位于
    A
    中,但不在
    B
    中)。
  • 但是,当我运行相同的命令时,我没有得到只复制
    file-2
    并且我有一个附加文件夹
    B
    ,而是在
    test2
    中得到一个名为
    test
    的新文件夹,在里面我找到
     A
    B
    ,但
    file-1
    中没有
    a
    (基本上是新情况的复制品)。

为什么会发生这种情况以及如何防止这种情况以启用同步?

google-cloud-platform google-cloud-storage gcloud
2个回答
2
投票

gsutil rsync
命令优先用于同步两个桶的内容。

您可以使用

-d
选项删除目标存储桶下未在源存储桶下找到的文件。但要小心,因为它可以删除目标存储桶中的文件。


0
投票

每个存储桶中都有一个传输数据对象,您可以使用该对象创建存储传输作业。 文档说将其用于以上 1TB,但似乎对于小数据来说效果很好,并且不会在本地复制数据。

© www.soinside.com 2019 - 2024. All rights reserved.