【发布时间】:2020-09-17 09:39:01
【问题描述】:
GCS Transfer Service 是定期传输数据的理想解决方案。将存储桶同步到另一个存储桶的适当设置是什么,其中目标存储桶具有存档存储类?
如果服务正在检查相同的对象,我的一个担忧是可能对归档类对象进行昂贵的操作。如果为了避免这些检查,我每天只复制过去 24 小时内的新文件,那么这个时间有多准确 - 我会因为作业开始时的几分钟时间抖动而错过一个文件吗?
【问题讨论】:
GCS Transfer Service 是定期传输数据的理想解决方案。将存储桶同步到另一个存储桶的适当设置是什么,其中目标存储桶具有存档存储类?
如果服务正在检查相同的对象,我的一个担忧是可能对归档类对象进行昂贵的操作。如果为了避免这些检查,我每天只复制过去 24 小时内的新文件,那么这个时间有多准确 - 我会因为作业开始时的几分钟时间抖动而错过一个文件吗?
【问题讨论】:
虽然“适当的设置”完全取决于您的业务需求。一个好的方法是使用在标准存储桶上创建/完成时触发的云函数,在第二个存储桶中创建该对象的副本。
你可以在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)
【讨论】: