【问题标题】:Drop n' swap text chunks with GAE Blobstore API使用 GAE Blobstore API 删除 n' 交换文本块
【发布时间】:2013-02-24 13:11:56
【问题描述】:

我正在设计一个允许用户上传 PDF 文件的 GAE 应用程序,我会将其保存到 GAE Blobstore。

我需要能够在这些 blobstored 文件中“删除 n' 交换”文本块。也就是说,我需要能够从文件(存储在 Blobstore 中)中挑选出特定的句子,并将其替换为不同的文本。

假设我有一个PDF文件,我知道从文件中的第505个字节/字符开始,有一句话:

树林很可爱,又黑又深。

我想用以下内容替换(drop n' swap)那句话:

但我有承诺要遵守。

然后我知道我想用我的新字符串替换字节 505 到 541(树林很可爱,又黑又深。)。

所以我问:这可能吗?我看到 Blobstore API 允许您从存储的 blob 中读取特定的字符段:

// Now contains: "The woods are lovely, dark and deep."
String toDropNSwap = blobStoreService.fetchData(blobKey, 505, 541);

toDropNSwap = "But I have promises to keep.";

// This doesn't exist, just an example:
blobstoreService.dropAndSwap(505, 541, toDropNSwap);

但我不知道如何用另一段字节替换一段字节,特别是如果新段的大小不同。还有一件事:我将处理最大为 20MB 的文件。提前致谢。

【问题讨论】:

    标签: java google-app-engine pdf file-io blobstore


    【解决方案1】:

    Blob 是 immutable:

    Blob 在创建后无法修改,但可以 删除。每个 blob 都有一个对应的 blob 信息记录,存储在 数据存储,提供有关 blob 的详细信息,例如它的创建 时间和内容类型。您可以使用 blob 键来获取 blob 信息 记录并查询其属性。

    所以你正在寻找的东西是不可能的。您将不得不删除并创建一个新的 blob。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多