我正试图从Google存储下载文件。 如果我访问Google存储页面,我可以正确下载该文件。
但是如果我尝试使用api下载,它会返回一个json对象:
{
"kind": "storage#object",
"id": "storage-key/file/id",
"selfLink": "link",
"name": "name.xlsx",
"bucket": "bucketName",
"generation": "35452344234",
"metageneration": "1",
"contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"timeCreated": "2017-02-23T12:35:04.258Z",
"updated": "2017-02-23T12:35:04.258Z",
"storageClass": "STANDARD",
"timeStorageClassUpdated": "2017-02-23T12:35:04.258Z",
"size": "4679",
"md5Hash": "k3A546723454afhjgrfKuZw==",
"mediaLink": "medialink",
"crc32c": "U2ajDQ==",
"etag": "DMiAt62dbtICAAE="
}
我基本上使用:
import com.google.api.services.storage.Storage;
storage.objects().get(bucketName, fileName).executeAsInputStream();
昨天它起作用了:。 你有什么想法,为什么它返回一个json?
答案 0 :(得分:1)
executeAsInputStream()retrieves the object's metadata(作为流)。
executeMediaAsInputStream()检索对象的内容(作为流)。
此外,您可能有兴趣切换到新的google-cloud client library for Java,这会删除您正在使用的客户端的一些更令人困惑的位。这是一个example of how to use it for downloading。