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