private void copyInternal(
BatchHelper batchHelper,
final KeySetView<IOException, Boolean> innerExceptions,
final String srcBucketName, final String srcObjectName,
final String dstBucketName, final String dstObjectName)
throws IOException {
Storage.Objects.Copy copyObject =
configureRequest(
gcs.objects().copy(srcBucketName, srcObjectName, dstBucketName, dstObjectName, null),
srcBucketName);
batchHelper.queue(
copyObject,
new JsonBatchCallback<StorageObject>() {
@Override
public void onSuccess(StorageObject copyResponse, HttpHeaders responseHeaders) {
String srcString = StorageResourceId.createReadableString(srcBucketName, srcObjectName);
String dstString = StorageResourceId.createReadableString(dstBucketName, dstObjectName);
logger.atFine().log("Successfully copied %s to %s", srcString, dstString);
}
@Override
public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) {
onCopyFailure(innerExceptions, e, srcBucketName, srcObjectName);
}
});
}