【发布时间】:2016-01-07 17:06:44
【问题描述】:
我想获取我的 GCS 文件的内容 md5。
我试过这样做:
Storage.Objects.Get get = storage.objects().get(BUCKET_NAME_MUSIC_DATA, fileName);
serverHash = get.execute().getMd5Hash();
bufferedInputStream = new BufferedInputStream(get.executeMediaAsInputStream());
//process the stream
我得到了 md5 和流,但这在技术上涉及 2 个网络调用。
然后我尝试了这个:
Storage.Objects.Get get = storage.objects().get(BUCKET_NAME_MUSIC_DATA, fileName);
HttpResponse httpResponse = get.executeMedia();
serverHash = httpResponse.getHeaders().getContentMD5();
bufferedInputStream = new BufferedInputStream(httpResponse.getContent());
这是一个单一的网络调用,但哈希值是 null.... 请帮忙。
【问题讨论】:
-
对象是否真的有MD5(你可以试试gsutil ls -L 来验证)?并非所有 Google Cloud Storage 对象都有 MD5。例如,复合对象只有 CRC32c。
-
是的!根据此链接cloud.google.com/storage/docs/reference-headers,http响应中不包含content-md5
-
cloud.google.com/storage/docs/…查看java示例
标签: java google-cloud-storage google-cloud-platform