我想移動約1個百萬個文件從Azure存儲到S3。我使用Azure python sdk和boto3編寫了這個python腳本。有效地從Azure的Blob存儲的數據複製到S3
marker = None
while True:
batch = azure_blob_service.list_blobs(
container, marker=marker)
# copy blobs in batches
for blob in batch:
blob_name = blob.name
current_blob = azure_blob_service.get_blob_to_bytes(
copy_from_container, blob_name)
s3_client.put_object(
Body=current_blob.content,
Bucket=s3_bucket,
ContentType=current_blob.properties.content_settings.content_type,
Key=blob_name)
if not batch.next_marker:
break
marker = batch.next_marker
但是這很慢。
我怎樣纔能有效地從蔚藍的數據移動到S3?
它已經很長了我與S3工作,所以我可能是錯的,但S3不支持服務器端複製。正確?只有您可用的選項是從Azure將Blob下載到本地磁盤,然後將其上傳回S3。對? –
@GauravMantri是的,我沒有找到類似的東西。我也在做類似於你的事情。但不是將它們下載到磁盤,而是使用'get_blob_to_bytes',然後將其上傳到S3。 –
'get_blob_to_bytes' ....你仍然在下載數據。你沒有做的是將這些數據保存到本地磁盤,所以從網絡的角度來看,你沒有獲得任何東西。 –