【问题标题】:How to retrieve a byte array from the blobstore?如何从 blobstore 中检索字节数组?
【发布时间】:2012-09-23 22:42:08
【问题描述】:

我阅读了文档,用谷歌搜索了一遍,但仍然不知道如何将 blob 读取为字节数组。

我能够生成 PDF 文件并将它们存储在 blobstore 中。我还可以使用serve() 为这些blob 提供下载服务,没问题。这一切都很好。

现在我想检索其中一个 blob,并将其作为字节数组读取以将其传递给 Mail API,以作为 Mime 附件发送。据我了解,Mail API 仅接受字节数组作为附件数据。

我看到了 BufferedInputStream 的 read() 方法,但它建议获取 n 个字节。我需要立即阅读完整的 blob。在阅读之前我不知道它的长度。

【问题讨论】:

    标签: java google-app-engine blobstore


    【解决方案1】:

    像这样:

    byte[] myFile = blobstoreService.fetchData(blobKey, index, index + batchSize);
    

    基本上你从 index=0 开始,然后循环遍历这个 blob,直到你得到一个比你的批处理大小更短的数组。

    【讨论】:

    • 如此简单.. 非常感谢。 fetchData(key, 0, BlobstoreService.MAX_BLOB_FETCH_SIZE-1);一次调用即可获取整个 blob。
    猜你喜欢
    • 1970-01-01
    • 2015-03-02
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多