我正在尝试将数据从AWS S3存储桶(例如s3:// mySrcBkt)传输到GCS位置(存储桶下的文件夹为gs:// myDestBkt / myDestination)。我无法从Interface找到相同的选项,因为它只提供提供存储桶而不是子文件夹。我都没有从storagetransfer API中找到类似的设备。这是我的代码片段:
String SOURCE_BUCKET = .... ;
String ACCESS_KEY = .....;
String SECRET_ACCESS_KEY = .....;
String DESTINATION_BUCKET = .......;
String STATUS = "ENABLED";
TransferJob transferJob =
new TransferJob()
.setName(NAME)
.setDescription(DESCRIPTION)
.setProjectId(PROJECT)
.setTransferSpec(
new TransferSpec()
.setObjectConditions(new ObjectConditions()
.setIncludePrefixes(includePrefixes))
.setTransferOptions(new TransferOptions()
.setDeleteObjectsFromSourceAfterTransfer(false)
.setOverwriteObjectsAlreadyExistingInSink(false)
.setDeleteObjectsUniqueInSink(false))
.setAwsS3DataSource(
new AwsS3Data()
.setBucketName(SOURCE_BUCKET)
.setAwsAccessKey(
new AwsAccessKey()
.setAccessKeyId(ACCESS_KEY)
.setSecretAccessKey(SECRET_ACCESS_KEY))
)
.setGcsDataSink(
new GcsData()
.setBucketName(DESTINATION_BUCKET)
))
.setSchedule(
new Schedule()
.setScheduleStartDate(date)
.setScheduleEndDate(date)
.setStartTimeOfDay(time))
.setStatus(STATUS);
不幸的是我找不到任何提及此转移的目标文件夹。我知道gsutil rsync有类似的规模&数据完整性是一个问题。任何人都可以指导我/指出我的任何方式/解决方法来实现目标吗?
答案 0 :(得分:0)
由于存储桶而不是子目录是数据传输目标的可用选项,因此此方案的解决方法是将数据传输到存储桶,然后在存储桶和子目录之间进行rsync操作,请记住,您应该尝试像you could delete data accidentally一样运行gsutil -m rsync -r -d -n
来验证其作用。