2013-02-24 56 views
1

我正在設計GAE應用程序,該程序允許用戶上傳PDF文件,從而將其保存到GAE Blobstore中。使用GAE Blobstore API下載n'交換文本塊

我需要能夠在這些blobstored文件中「放置n個交換」文本塊。也就是說,我需要能夠從文件中挑選特定句子(存儲在Blobstore中),並用不同的文本替換它。

說我有一個PDF文件,並且我知道,起始於文件中的第505個字節/字符,還有就是一句話:

樹林真好看,又黑又深。

而且我想,以取代(液滴N」交換)的那句話:

但我有承諾保持。

後來我知道,我想通過541與我的新字符串替換字節505(樹林真好看,又黑又深。)。

所以我問:這是可能的嗎?我看到Blob存儲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的文件。提前致謝。

回答

3

斑點是immutable

斑點不能被他們創建後,修改雖然可以 刪除。每個blob都有一個對應的blob信息記錄,存儲在 數據存儲區中,該記錄提供有關blob的詳細信息,例如其創建時間和內容類型 。您可以使用blob密鑰來獲取blob info 記錄並查詢其屬性。

所以你正在尋找的是不可能的。您將不得不刪除並創建一個新的blob。

+0

dang ...但是謝謝:-) – IAmYourFaja 2013-02-24 13:59:35