def get_blob(request, key): from django.http import HttpResponseRedirect from django.core import urlresolvers photo = MyEntity.get_by_id(int(key)) if photo: info = BlobInfo(photo.img.key()) return HttpResponseRedirect(urlresolvers.reverse(remote_display_image, kwargs={'blob_key':info.key()})) return HttpResponseRedirect(urlresolvers.reverse(remote_display_image, kwargs={'blob_key': ''}))
def index(blob_key): input_numbers = BlobInfo.get(blob_key).open().read().split() output_numbers = [CoinDeterminer(num) for num in input_numbers] context = {'download_path': to_path(download, blob_key=blob_key), 'input': input_numbers, 'output': output_numbers} return TemplateResponse(context, 'updown/ok.html')
def blobstore_callback(request, entry_id): info = None key_match = re.search(r"blob-key=([^;\r]+)[;\r]", request.body) if key_match: info = BlobInfo.get(key_match.group(1).strip('"')) if not info: return render(request, "upload.html", {'err': True}) logging.info("Received file: %r" % ((info.filename, info.content_type, info.size, info.key()),)) def tx(entry_id): entry = GalleryEntry.get_by_id(int(entry_id)) if not entry: return render(request, "upload.html", {'err': True}) if not entry.photos: entry.photos = [info.key()] # also publish the entry entry.tags = list(set(entry.tags + ['public'])) else: entry.photos = entry.photos + [info.key()] entry.put() logging.debug("Updated %r" % entry.key) return http.HttpResponseRedirect("%s?%s" % (reverse(single, args=[entry.key.id()]), urlencode({'ty': ''}))) return ndb.transaction(lambda: tx(int(entry_id)))
def _move_shop_loyalty_app_to_cloudstorage(la_key): la = db.get(la_key) if not la.package: return blob_info = BlobInfo.get(la.package.key()) filename = '%s/oca/launcher/apps/%s.apk' % (ROGERTHAT_ATTACHMENTS_BUCKET, la.app_id) with cloudstorage.open(filename, 'w', blob_info.content_type) as f: blob_reader = blob_info.open() f.write(blob_reader.read())
def get(self): """targetMessagesQuery = MessageModel.query(MessageModel.messageRead == True) targetMessages = targetMessagesQuery.iter() for targetMessage in targetMessages: if targetMessage.fileKey is None: targetMessage.key.delete() elif datetime.datetime.utcnow() - targetMessage.timestamp > datetime.timedelta(1): blobstore.BlobInfo.get(targetMessage.fileKey).delete() targetMessage.key.delete()""" try: query = BlobInfo.all() blobs = query.fetch(300) index = 0 if len(blobs) > 0: for blob in blobs: if datetime.datetime.utcnow() - blob.creation > datetime.timedelta(2): blob.delete() index += 1 if index == 300: self.redirect("/clearmessages") self.response.write(RESPONSE_OK) except Exception as error: logging.error("Error " + str(type(error)) + " " + str(error) + " " + str(error.message))
end = self.request.get('end') async = self.request.get('async') if async is not None and async == 'true': data_rpc = blobstore.fetch_data_async(key, int(start), int(end)) data = data_rpc.get_result() else: data = blobstore.fetch_data(key, int(start), int(end)) if data is not None: self.response.out.write(data) else: self.response.set_status(404) else: file_name = self.request.get('file') size = self.request.get('size') if file_name is not None and len(file_name) > 0: query = BlobInfo.gql("WHERE filename = '%s'" % file_name) blob_info = query[0] self.response.headers['Content-Type'] = "application/json" self.response.out.write(json.dumps(blob_info, default=serialize)) elif size is not None and len(size) > 0: query = BlobInfo.gql("WHERE size > %s" % size) data = [] for result in query: data.append(result) self.response.headers['Content-Type'] = "application/json" self.response.out.write(json.dumps(data, default=serialize)) else: blob_info = BlobInfo.get(key) if blob_info is not None: self.response.headers['Content-Type'] = "application/json" self.response.out.write(json.dumps(blob_info, default=serialize))