我的 AppEngine 项目有一个 API 方法,可以将可恢复的 URL 发送到 Android 客户端,然后使用该可恢复的 URL 上传图像。
我有另一种创建并返回签名 URL 的 API 方法。在签名 URL 中,您必须指定 Google Cloud Storage 存储桶和对象名称。但是,该对象可能不存在,在这种情况下,签名的 URL 当然将不起作用。
在发布签名 URL 之前,如何快速检查我的 App Engine 后端中是否存在对象(在存储桶中)?
编辑:我的 App Engine 项目是 Cloud Endpoints 项目。
最佳答案
您可以调用getMetadata
来检查对象是否存在而无需下载它。
GcsService fileService = GcsServiceFactory.createGcsService();
GcsFilename file = new GcsFilename(bucket, object);
fileService.getMetadata(file);
或者,您可以列出存储桶中的所有对象或存储桶中以指定前缀(如有必要,可以等于对象名称)开头的所有对象。
更新:
这是我将 uploadURL 发送给我的客户的方式:
@Override
public String getUploadUrl() throws LoginException, VersionException {
// Verify that call is from a registered user and with proper headers
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
String callbackUrl = "/blob";
return blobstoreService.createUploadUrl(callbackUrl,
UploadOptions.Builder.withGoogleStorageBucketName("myBucket));
}
关于google-app-engine - 谷歌云存储检查对象是否存在(App Engine Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414817/