我正在将我的 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/