java-使用文件服务URL从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?
你能请教吗?
谢谢
解决方法:
无法从服务网址派生原始Blobkey.如果这是您要执行的操作,那么我建议存储URL->生成URL时,数据存储区中的BlobKey映射.
标签:blobstore,google-app-engine,google-cloud-datastore,java,gwt 来源: https://codeday.me/bug/20191031/1977691.html