1

ユーザーが PDF ファイルをアップロードできるようにする GAE アプリを設計しています。これにより、PDF ファイルを GAE Blobstore に保存します。

これらのブロブストアド ファイル内のテキストのチャンクを "ドロップ n' スワップ" する機能が必要です。つまり、(Blobstore に保存されている) ファイルから特定の文を選び出し、別のテキストに置き換える機能が必要です。

PDF ファイルがあり、ファイルの 505 番目のバイト/文字から次の文があることを知っているとします。

森は美しく、暗く、深い。

そして、その文を次のように置き換えます (drop n' swap):

しかし、私には守るべき約束があります。

次に、バイト 505 から 541 ( The woods are Lovely, dark and deep. ) を新しい文字列に置き換えたいことがわかります。

だから私は尋ねます:これは可能ですか?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);

しかし、特に新しいセグメントのサイズが異なる場合、バイトのセグメントを別のバイトのセグメントに置き換える方法がわかりません。もう 1 つ、最大 20 MB のファイルを扱う予定です。前もって感謝します。

4

1 に答える 1

3

ブロブは不変です:

BLOB は削除できますが、作成後に変更することはできません。各 BLOB には、対応する BLOB 情報レコードがあり、データストアに格納され、BLOB に関する詳細 (作成時刻やコンテンツ タイプなど) を提供します。BLOB キーを使用して、BLOB 情報レコードをフェッチし、それらのプロパティをクエリできます。

だからあなたが探しているものは不可能です。代わりに、新しい BLOB を削除して作成する必要があります。

于 2013-02-24T13:19:45.357 に答える