【问题标题】:Backup GCS bucket to an archive-class GCS bucket将 GCS 存储桶备份到存档级 GCS 存储桶
【发布时间】:2020-09-17 09:39:01
【问题描述】:

GCS Transfer Service 是定期传输数据的理想解决方案。将存储桶同步到另一个存储桶的适当设置是什么,其中目标存储桶具有存档存储类?

如果服务正在检查相同的对象,我的一个担忧是可能对归档类对象进行昂贵的操作。如果为了避免这些检查,我每天只复制过去 24 小时内的新文件,那么这个时间有多准确 - 我会因为作业开始时的几分钟时间抖动而错过一个文件吗?

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    虽然“适当的设置”完全取决于您的业务需求。一个好的方法是使用在标准存储桶上创建/完成时触发的云函数,在第二个存储桶中创建该对象的副本。

    你可以在python中使用这个函数作为指导:

    from google.cloud import storage
    from google.cloud.storage.blob import Blob
    
    def hello_gcs(event, context):
        client = storage.Client()
        source_bucket = client.get_bucket("my_source_bucket)
        dest_bucket = client.get_bucket("my_destination_bucket")
        filename = str(event['id']).rsplit('/',1)[0]
        blob = Blob.from_string("gs://" + filename)
        source_bucket.copy_blob(blob,dest_bucket)
    

    【讨论】:

    • 我喜欢放弃接送服务的替代方法。转移的成本更高还是更低?此外,如果文件在源中被覆盖会发生什么 - 它是否会导致目标端提前删除(或者对象版本可以在这里保存我们吗?)?
    • 根据documentation"在最短存储期限之前覆盖或移动现有对象时会产生早期删除费用,因为这两个操作都会删除原始文件" 此功能将重写文件如果文件在原始存储桶上重写,则在您的目标存储桶中。如果需要,您仍然可以将对象的版本附加到存档存储桶中的名称,完全避免检查目标存储桶上的读取文件。
    • 关于“传输的成本或多或少?如果您将存储桶与传输服务同步,它将读取目标存储桶中的所有对象,我知道这真的很昂贵,因为存档类。我的方法避免了这种情况,但您必须自己考虑 Cloud Functions 和 compare the prices 的额外费用
    猜你喜欢
    • 2021-02-21
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2017-08-05
    • 2021-11-27
    • 1970-01-01
    相关资源
    最近更新 更多