在我的应用程序(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/

10-11 22:27