我们应用程序的一部分通过存储传输服务 API 发起从 Amazon S3 到 Google Cloud Storage 的传输。我们已经成功启动并运行了几个月,直到昨天我们的传输停止工作。我们可以看到在控制台中启动了传输,但它无限期挂起,并显示一个历史项目:“此传输正在开始......”我们有一个后台进程轮询传输状态,我们看到返回状态“transfer_calculating”
在尝试调试此问题时,我们通过存储控制台设置了传输。我们使用了与我们的应用程序相同的 AWS 访问密钥 ID/秘密访问密钥,并且传输成功完成。这使我们相信问题与传输服务 API 或我们启动 API 调用的代码无关。
转移工作代码:
TransferJob tjob = new TransferJob()
.setDescription(description)
.setStatus('ENABLED')
.setProjectId(transferGoogleProject)
.setTransferSpec(
new TransferSpec()
.setGcsDataSink(new GcsData().setBucketName(googleStorageBucket))
.setAwsS3DataSource(
new AwsS3Data()
.setBucketName(s3Bucket)
.setAwsAccessKey(new AwsAccessKey().setAccessKeyId(transferAwsKey).setSecretAccessKey(transferAwsSecret)))
.setObjectConditions(new ObjectConditions().setIncludePrefixes(s3Keys))
.setTransferOptions(
new TransferOptions()
.setDeleteObjectsFromSourceAfterTransfer(false)
.setOverwriteObjectsAlreadyExistingInSink(true)
.setDeleteObjectsUniqueInSink(false)))
.setSchedule(
new Schedule()
.setScheduleStartDate(date)
.setScheduleEndDate(date)
.setStartTimeOfDay(time))
tjob = storagetransfer.transferJobs().create(tjob).execute()
库配置:
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.19.1</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-bigquery</artifactId>
<version>v2-rev191-1.19.1</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-storage</artifactId>
<version>v1-rev26-1.19.1</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-storagetransfer</artifactId>
<version>v1-rev3-1.19.1</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-jackson2</artifactId>
<version>1.19.0</version>
</dependency>
我们已经在我们的开发环境中将版本提高到 1.21.0,但传输仍然卡在“此传输正在开始...”
在这一点上我们被卡住了,还有其他人遇到这个问题吗?