【问题标题】:Reading PlayStore csv review files from Google storage bucket using Java App Engine使用 Java App Engine 从 Google 存储桶中读取 PlayStore csv 评论文件
【发布时间】: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


    【解决方案1】:

    使用 executeMedia() 和 parseAsString 解决了这个问题

    HttpResponse response = obj.executeMedia();
    response.parseAsString(); //works!!
    

    【讨论】:

      猜你喜欢
      • 2022-08-04
      • 2020-07-03
      • 1970-01-01
      • 2019-03-22
      • 2021-10-25
      • 1970-01-01
      • 2021-07-05
      • 2017-05-04
      • 1970-01-01
      相关资源
      最近更新 更多