The BlobKey Class

An instance of the BlobKey class represents the key of a Blobstore value. This value can be stored as a property value in a datastore entity, used to get the BlobInfo object that corresponds with a Blobstore value, and returned in a response header to serve the Blobstore value to a user.

The BlobKey class is provided by the google.appengine.ext.blobstore module.

Your Blobstore upload handler can access the string form of the Blobstore key in the request data, as the X-AppEngine-BlobKey header in the MIME part that corresponds with the uploaded file. You can convert this string to a BlobKey value by passing the string to the BlobKey() constructor.

You can get the string form of a BlobKey value by passing it to the str() builtin. The string form avoids special characters used in URLs and HTML, so it can be used in user-facing data without being escaped. A Blobstore value can only be retrieved by a user if the application sets the X-AppEngine-BlobKey header in a response, so the application can control access to values even if Blobstore keys are public. If access to your Blobstore values must be restricted, be careful when serving values based on keys calculated from user-submitted data.

You can use the BlobReferenceProperty class with the Python data modeling interface to create references to BlobInfo entities from other entities. The actual value stored for the property is a BlobKey value.

You can fetch the BlobInfo entity with a BlobKey by passing the key to the BlobInfo.get() class method.