Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete files from blobstore using file serving URL

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


1 Answers

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.

like image 84
Stuart Langley Avatar answered Feb 22 '26 04:02

Stuart Langley