In my app (GWT on GAE) we are storing on our database the serving URL that is stored on blobstore. When user selects one of these files and clicks "delete", we need to delete the file from blobstore.
This is our code, but it is not deleting the file at all:
public void remove(String fileURL)
{
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
String key = getBlobKeyFromURL(fileURL);
BlobKey blobKey = new BlobKey(key);
blobstoreService.delete(blobKey);
}
Where fileURL
looks like this:
http://lh6.ggpht.com/d5VC0ywISACeJRiC3zkzaZug-tPsaI_LGt93-e_ATGTCwnGLao4yTWjLVppQ
And getBlobKeyFromURL()
would return what is after the last "/", in this example:
d5VC0ywISACeJRiC3zkzaZug-tPsaI_LGt93-e_ATGTCwnGLao4yTWjLVppQ
*EDIT:* Seems that what getBlobKeyFromURL() returns is not the blobKey. The blobKey is a different string that, with /download?blob-key=
before, returns the fileURL
. So the question now would be: how can I get the blobKey from the URL?
Could you please advice?
Thanks
There is no way to derive the original blobkey from the serving URL. If this is something you want to do, then I suggest storing the URL -> BlobKey mapping in the datastore when you generate the URL.
Following code snipped returns blobkey if you use URL parameter such as www.example.com/?name=yourUrlwanttodelete