环境:
使用 JSON API(com.google.api.services.storage.Storage 类)的 Java 客户端(“google-api-services-storage”、“v1-rev33-1.20.0”)。
目标:
使用 Java 客户端将大型对象从“标准”存储桶移动到“近线”存储桶(文件大小为 512 MB)。
步骤:
使用“重写” API 方法。
问题:
我在 20 秒内收到 SocketTimeoutException。
调查:
当我对同一对象使用从“标准”存储桶重写到另一个“标准”存储桶时,相同的代码工作正常。
我还尝试了APIs Explorer并创建了一个将对象从“标准”重写为“近线”存储桶的请求。服务器在大约 27 秒内做出响应,响应中的“totalBytesRewritten”属性大约是文件大小的一半。如何获取和处理此类响应?
文档说:
“如果源和目标是不同的位置和/或存储类,重写方法可能需要多次调用。”
我的代码(Java):
final Storage.Objects.Rewrite rewriteRequest = storage.objects().rewrite(
STANDARD_BUCKET_NAME,
SOURCE_OBJECT_PATH,
NEARLINE_BUCKET_NAME,
TARGET_OBJECT_PATH,
null // no metadata overriding
);
rewriteRequest.execute();
请帮忙。