是否可以使用gsutil命令批量复制或移动文件?例如,如果我要将100个文件从给定文件夹复制到另一个文件夹。
尝试一下:
gsutil ls gs://bucketA | head -n 100 | shuf | gsutil cp -m -I gs://bucketB
这将获取bucketA中的文件列表,获取前100个项目,用shuf
对其进行随机化,然后将它们传送到shuf
中以复制到bucketB。 gsutil
标志从-I
读取文件列表。
另一种实现方法是使用stdin
。例如在Python中:
Client libraries
这会将前100个文件从GCS存储桶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()
中的folder1
移动到my_bucket
。