Gsutil批量复制/移动文件

时间:2019-10-31 12:52:01

标签: google-cloud-storage gsutil

是否可以使用gsutil命令批量复制或移动文件? 例如,如果我要将100个文件从给定文件夹复制到另一个文件夹。

2 个答案:

答案 0 :(得分:0)

另一种实现方法是使用Client libraries。例如在Python中:

from google.cloud import storage

storage_client = storage.Client()

bucket_name = 'my_bucket'
bucket = storage_client.get_bucket(bucket_name)

blobs_to_move = [blob for blob in bucket.list_blobs(prefix="folder1/")]

with storage_client.batch():
    for blob in blobs_to_move[:100]:
        # copy to new destination
        new_blob = bucket.copy_blob(blob, bucket, "folder2/" + blob.name[8:])
        # delete in old destination
        blob.delete()   

这会将前100个文件从GCS存储桶folder1中的my_bucket移动到folder2

答案 1 :(得分:0)

尝试一下:

gsutil ls gs://bucketA | head -n 100 | shuf | gsutil cp -m -I gs://bucketB

这将获取bucketA中的文件列表,获取前100个项目,用shuf随机分配,然后将它们传送到gsutil中以复制到bucketB。 -I标志从stdin读取文件列表。