I need to copy an object between two S3 buckets in different regions. The object is large enough that amazonica.aws.s3/copy-object
fails with the following:
AmazonS3Exception The specified copy source is larger than the maximum allowable size for a copy source: 5368709120 (Service: Amazon S3; Status Code: 400; Error Code: InvalidRequest; Request ID: 3481F664EA2F784A)
So I'm trying to use amazonica.aws.s3transfer/copy
, calling it with four arguents (source bucket name, source key name, destination bucket name, and destination key name). It immediately returns with {}
. I had expected the map it returns to have a :wait-for-completion
key, mapping to a function that I can call to wait for the copy operation to finish; after all, that is how s3transfer/upload
works.
How can I tell when the copy operation has finished? Is there a way, other than polling the destination bucket periodically to see when the object appears?