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