java - 从ObjectName获取Google云存储文件

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

我正在将我的 GAE 应用从已弃用的文件 API 迁移到 Google 云存储客户端库。 我曾经保留 blobKey,但由于它有部分支持(如指定的 here ),从现在开始我必须保留对象名称。 不幸的是,来自 GCS 的对象名称看起来或多或少像这样

/gs/bucketname/819892hjd81dh19gf872g8211

如您所见,它还包含存储桶名称

这就是问题所在,每次我需要获取文件进行进一步处理(或在 servlet 中提供它)时,我都需要创建一个 GcsFileName(bucketName, objectName) 实例,它给了我类似的东西

/bucketName/gs/bucketName/akahsdjahslagfasgfjkasd

这(当然)不起作用。

所以。我的问题是: - 如何从 objectName 生成 GcsFileName?

更新

我尝试使用 objectName 作为 BlobKey。但它就是行不通:(

InputStream is = new BlobstoreInputStream(blobstoreService.createGsBlobKey("/gs/bucketName/akahsdjahslagfasgfjkasd"));

我得到了通常的答案

BlobstoreInputStream received an invalid blob key

如何使用 ObjectName 获取文件???

最佳答案

如果您已保存并检索了例如值得 "/gs/bucketname/819892hjd81dh19gf872g8211" 的字符串 String objname,您可以将其拆分为“/”(String[]pieces = objname.split("/")),并在对 GcsFileName 的调用中适本地使用这些片段>.

关于java - 从ObjectName获取Google云存储文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28235334/

相关文章:

java - 将图像插入边框作为背景

python - 使用低级 python 邮件 api 发送邮件(Google App Engine)

java - 谷歌应用引擎大表

google-cloud-storage - 更改 Google Cloud Storage 中(现有)对象的存储类别

javascript - 如何从客户端 React 应用程序使用 firebase 存储?

google-cloud-storage - 我想使用 gcs 将多个域链接到一个存储桶

java - 从另一个 Java 应用程序部署 Apache Spark 应用程序,最佳实践

java - 如何加密过滤器中的响应数据

java - 时隙系统中的垃圾收集

python - 此应用程序不存在 (app_id=xxx)