gpt4 book ai didi

java - 替换 FileService Api 以在服务器端创建 Blob 文件

转载 作者:行者123 更新时间:2023-12-01 11:28:57 25 4
gpt4 key购买 nike

我正在使用 FileService Api 将文件从服务器端保存到 Blobstore,如下所示:

    FileService fileService = FileServiceFactory.getFileService();
AppEngineFile file = null;
file = fileService.createNewBlobFile(contentType, fileName);

boolean lock = true;
FileWriteChannel writeChannel = null;
writeChannel = fileService.openWriteChannel(file, lock);

ByteBuffer bb = ByteBuffer.wrap(FILE_BYTES);
writeChannel.write(bb);
writeChannel.closeFinally();
BlobKey blobKey = fileService.getBlobKey(file);
return blobKey.getKeyString();

但是 FileService Api 将于今年 (2015) 7 月推出 File Api Service Turndown .

我正在寻找一种替代方法来做到这一点。我需要在服务器端从 byte[] 创建一个文件并将其保存到 blobstore。

我知道并使用createUploadUrl选项从客户端上传文件并将其保存到blobstore

    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
url = blobstoreService.createUploadUrl("/upload", uploadOptions);

但我需要的是在服务器端创建和保存文件,就像 FileService Api 所做的那样。

我在迁移文档中搜索了 JAVA对此别无选择。唯一的选择是通过 POST 和 createUploadUrl

任何帮助将不胜感激。感谢您的阅读。

最佳答案

由于 Blobstore 即将永久关闭,您需要开始使用 Google Cloud Storage。

Google Cloud Storage Client Library与 App Engine 完全集成,可以轻松迁移到另一个 API。

将对象保存到 Cloud Storage 后,您可以从对象名称开始生成 BlobKey。

GcsFilename gcs_file = /* your uploaded file */;
String cloudStorageURL = "/gs/" + gcs_file.getBucketName() + "/" + gcs_file.getObjectName();
BlobstoreService bs = BlobstoreServiceFactory.getBlobstoreService();
return bs.createGsBlobKey(cloudStorageURL);

通过这种方式,您不需要更改整个代码(可能还有数据存储区),因为您继续使用 BlobKey 对象作为文件标识符。

关于java - 替换 FileService Api 以在服务器端创建 Blob 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30585112/

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