Hi,
I've achieved something similar, but without specifying number of processes. I'm using concurrent.futures. The code below moves objects from one bucket to another.
def mv(src_b, dst_b, src_bl, dst_bl):
from_bucket = client.get_bucket(src_b)
to_bucket = client.get_bucket(dst_b)
moving_blob = from_bucket.get_blob(src_bl)
from_bucket.copy_blob(moving_blob, to_bucket, dst_bl)
moving_blob.delete()
with ft.ThreadPoolExecutor() as executor:
futures = []
for data_item in data_items:
futures.append(executor.submit(
mv,
src_b=data_item["src_bucket_name"],
dst_b=data_item["dst_bucket_name"],
src_bl=data_item["src_blob_name"],
dst_bl=data_item["dst_blob_name"]))
ft.wait(futures)
Let me know if it helped?