Пример #1
0
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': ''}))
Пример #2
0
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')
Пример #3
0
Файл: views.py Проект: jsa/pore
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)))
Пример #4
0
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())
Пример #5
0
 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))
Пример #6
0
   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))
Пример #7
0
   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))