替换 FileService Api 以在服务器端创建 Blob 文件
Replacing the FileService Api to create a Blob file in server side
我正在使用 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 do/did.
我已经在迁移文档中搜索了 JAVA,但没有其他选择。唯一的选择是通过 POST 和 createUploadUrl
如有任何帮助,我们将不胜感激。感谢阅读。
由于 Blobstore 即将永久关闭,您需要开始使用 Google 云存储。
Google Cloud Storage Client Library 与 App Engine 完全集成,可以轻松迁移到另一个 API。
将对象保存到云存储后,您可以生成一个以对象名称开头的 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 对象作为文件标识符。
我正在使用 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 do/did.
我已经在迁移文档中搜索了 JAVA,但没有其他选择。唯一的选择是通过 POST 和 createUploadUrl
如有任何帮助,我们将不胜感激。感谢阅读。
由于 Blobstore 即将永久关闭,您需要开始使用 Google 云存储。
Google Cloud Storage Client Library 与 App Engine 完全集成,可以轻松迁移到另一个 API。
将对象保存到云存储后,您可以生成一个以对象名称开头的 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 对象作为文件标识符。