如何仅使用 BlobKey 从 blobstore 加载和保存整个文件?

How load and save entire file from blobstore, using only BlobKey?

我想要服务文件(编辑),该用户上传到服务器。将其保存到 blobstore 后,我想将其加载到内存中进行编辑。存储文件后,我在 return 中得到了 BlobKey。据我了解,我应该使用以下方法将其加载到内存中:

byte[] BlobstoreService.fetchData(BlobKey blobKey, long startIndex, long endIndex)

问题是我不知道文件有多大,所以我不知道传递什么作为 endIndex 变量。如何在只有 BlobKey 的情况下从 blobstore 加载文件、更改它、保存新版本并接收新的 BlobKey 更改文件?

javadoc reference 看来,您似乎可以加载一个包含您的尺寸的 BlobInfo 对象。你只需要打电话

BlobInfoFactory() bif = New BlobInfoFactory();
BlobInfo bi = bif.loadBlobInfo(blobKey);
long size = bi.getSize();