【发布时间】:2015-06-09 09:16:27
【问题描述】:
这个问题困扰了我一天的大部分时间。
背景
我正在尝试通过我自己的 Google App Engine Java 项目为我的应用程序读取 Play Store reviews。 现在我可以使用 Google Cloud Storage 客户端 api (java) 获取所有文件的列表。 我还可以读取该存储桶中每个 csv 文件的元数据并将其打印到日志中:
问题
我根本找不到读取实际对象并获取 csv 数据的方法。 我的java代码sn-p:
BUCKET_NAME = "pubsite_prod_rev_*******";
objectFileName = "reviews/reviews_*****_***.csv"
Storage.Objects.Get obj = client.objects().get(BUCKET_NAME, objectFileName);
InputStream is = obj.executeMediaAsInputStream();
现在当我打印这个输入流时,它会告诉我它的 GZIPInputStream (java.util.zip.GZIPInputStream@f0be2c)。将此输入流转换为 byte[] 或 String(需要)不起作用。 如果我尝试使用以下方法将其封装在 GZIPInputStream 对象中:
zis = new GZIPInputStream(is);
它抛出 ZipException : Not in GZIP 格式。
文件元数据:
"contentType": "text/csv; charset=utf-16le",
"contentEncoding": "gzip",
我做错了什么?
子问题:过去我已经使用 GcsService 从 Google Cloud Storage 成功读取文本数据,但它似乎不适用于具有 Play Store 审查 csv 文件的存储桶。有人知道我的 Google App Engine 项目(连接到同一个 Google 开发者帐户)是否可以读取这些存储桶?
【问题讨论】:
标签: google-app-engine google-cloud-storage