java - 使用文件服务 URL 从 blobstore 中删除文件

标签 java google-app-engine gwt google-cloud-datastore blobstore

在我的应用程序(GAE 上的 GWT)中,我们将存储在 blobstore 上的服务 URL 存储在我们的数据库中。当用户选择这些文件之一并单击“删除”时,我们需要从 blobstore 中删除该文件。

这是我们的代码,但它根本没有删除文件:

public void remove(String fileURL)
{
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    String key = getBlobKeyFromURL(fileURL);
    BlobKey blobKey = new BlobKey(key);
    blobstoreService.delete(blobKey);
}

fileURL 看起来像这样:

http://lh6.ggpht.com/d5VC0ywISACeJRiC3zkzaZug-tPsaI_LGt93-e_ATGTCwnGLao4yTWjLVppQ

并且 getBlobKeyFromURL() 将返回最后一个“/”之后的内容,在此示例中:

d5VC0ywISACeJRiC3zkzaZug-tPsaI_LGt93-e_ATGTCwnGLao4yTWjLVppQ

*编辑:* getBlobKeyFromURL() 返回的似乎不是 blobKey。 blobKey 是一个不同的字符串,前面带有 /download?blob-key=,返回 fileURL。所以现在的问题是:如何从 URL 中获取 blobKey?

请问有什么建议吗?

谢谢

最佳答案

无法从服务 URL 派生原始 blobkey。如果这是您想要执行的操作,那么我建议您在生成 URL 时将 URL -> BlobKey 映射存储在数据存储中。

关于java - 使用文件服务 URL 从 blobstore 中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13208504/

相关文章:

java - (J2ME) 如何获取我的 jar 应用程序中的文件/资源​​列表

java - 使用 Hibernate 条件查询无顺序

java - 从 servlet 重定向到 GET 位置?

java - 在不撤回已经处理过的物体的情况下,处理多个物体的最佳方法是什么?

java - 将两个值关联到 Java HashMap 中的单个键

python - 是否可以在开发服务器上测试 Google App Engine OpenID 身份验证?

python - App Engine 将项目附加到 ListProperty

google-app-engine - 云存储客户端库不工作。没有模块 appengine.api

gwt - 如何知道 GWT 和 IE8 中的 RPC 对象是否为 'too large'?

GWT 图像按钮