gpt4 book ai didi

java - 使用 BlobKey 在 Google AppEngine 的 BlobStore 中查找 Blob

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:10 26 4
gpt4 key购买 nike

我正在尝试在 GoogleAppEngine 上保存并提供一个 blob。

// Save the data as a blob
final FileService fileService = FileServiceFactory.getFileService();
final AppEngineFile file = fileService.createNewBlobFile("application/zip", "nameOfSavedFile");
final FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
writeChannel.write(ByteBuffer.wrap(data));
writeChannel.closeFinally();

// Load the blob data
Query query = new Query("__BlobInfo__");
query.addFilter("filename", FilterOperator.EQUAL, "nameOfSavedFile");
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
PreparedQuery pq = datastore.prepare(query);
List<Entity> entList = pq.asList(FetchOptions.Builder.withLimit(1));
String blobKeyString = entList.get(0).getKey().getName();

BlobstoreService blobStoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKeyLoaded = new BlobKey(blobKeyString);
blobStoreService.serve(blobKeyLoaded,response);

如果我运行上面的代码,一旦它看起来有效。但是,当我再次运行相同的代码并打算用同名的新文件覆盖现有文件时,它只会提供旧文件。

谁能解释一下如何用新文件覆盖旧文件?

谢谢!

最佳答案

据我所知,仅当您通过 upload handler 上传 blob 时才会生成/更新 BlobInfo .

如果您“手动”更改 blob,即通过 FileService,则不会创建/更新 BlobInfo。在这种情况下,您应该手动更新 BlobInfo,或者根本不使用它,而只是将键/名称存储在自定义实体中。

关于java - 使用 BlobKey 在 Google AppEngine 的 BlobStore 中查找 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12065430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com