google-app-engine - 谷歌云存储检查对象是否存在(App Engine Java)

标签 google-app-engine google-cloud-storage

我的 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/

相关文章:

google-cloud-platform - 如何从我的 Google Developers Console 识别 Google Cloud Storage URI?

kubernetes - 指向 GCP 中位于 Google 存储桶中的文件

javascript - 如何从 Firebase 存储中删除 Vue.js 组件图像?

python - 如何在 AWS Elastic Beanstalk 或 Google App Engine 上使用未安装 pip 的 Python 库?

mysql - 无法连接到第二代 Cloud SQL 数据库

google-app-engine - GAE - 很多/_ah/1 秒内启动热身

java - Google 应用引擎是否支持 JDBC?

python - google-app-engine 全文搜索,哪个更好, "google custom search"或 whoosh

apache-spark - 如何修复 GKE 上的 Spark 应用程序中的 "NullPointerException: projectId must not be null"?

node.js - 谷歌云 - 有谁知道如何将 Node js应用程序部署到 Node js实例