Hello,
lately I've been playing around with Blobstore and I believe that it misses few critical features:

1. MD5/SHA1 integrity checksums. This is a *MUST*. All competing services (S3, Nirvanix, etc) provide ways to: - get checksum of already uploaded file (this should be another BlobInfo property), - upload file along with its checksum. When calculated checksum of uploaded file differs from the provided one, file is discarded and error response is sent to client.

2. Ranged requests. With large files this is another *MUST HAVE* feature and hopefully requires no explanation.

3. When "success_path" generates error response after upload (either 4xx or 5xx) with custom error page, it results in "500 Internal Server Error" response with Google's default error page, because Blobstore requires 3xx response. In my opionion this is bad, because one cannot return custom error page. Maybe only 2xx responses should be handled as incorrect?

4. "500 Internal Server Error" response is returned when wrong / old / not-existing BlobKey is passed via blobstore.BLOB_KEY_HEADER, in my opinion this should result in "404 Not Found" response.

Also, few times I received "500 Internal Server Error" response when uploading file(s) to path previously generated using blobstore.create_upload_path(). Those errors didn't result in *any* entry in application logs and I wasn't able to find proper way to reproduce this, but my guess is that this results from either:
- too old upload token (>24h),
- upload token generated for older deployment.

Best regards,
Piotr Sikora < [email protected] >

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.


Reply via email to