标签: blobstore

是否可以在应用程序引擎blobstore中查找和删除孤立的blob?

我正在使用python api并在测试期间创建了一些孤立的blob.

由于仪表板中存在错误,我目前无法删除这些错误,并且在任何情况下我都希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将是不可行的.

python google-app-engine blobstore

5
推荐指数
1
解决办法
1742
查看次数

使用GWT和AppEngine Blobstore进行多文件上传?

我如何在GWT和AppEngine Blobstore中创建类似Gmail的现代多文件上传?

最常提出的解决方案是gwtupload,这是由Manolo Carrasco编写的优秀GWT组件.但是,最新版本0.6.6不适用于blobstore(至少我无法使其工作),并且它不支持多文件选择.在最新的0.6.7快照中有一个用于多文件选择的补丁,但是虽然它允许选择多个文件(使用HTML5中的"multiple"属性),但仍然会在一个巨大的POST请求中发送它们(并显示进度整堆文件).

关于SO还有其他问题(例如此处此处),但答案通常使用HTML5"multiple"属性并将它们作为一个大的POST请求发送.它有效,但它不是我追求的.

gwt html5 google-app-engine file-upload blobstore

5
推荐指数
1
解决办法
4108
查看次数

Google App Engine - 从Python代码将文件上传到blobstore时出错

我正在开发一个应用程序来处理打到我邮箱的电子邮件.我修改了我的邮件设置以将传入的邮件转发到myapp.到达myapp的邮件将被路由到处理程序脚本(" handle_incoming_email.py "),在那里它将被处理.我的app.yaml文件看起来像这样

的app.yaml

application: myapp
version: 1-1
runtime: python27
api_version: 1
threadsafe: false
default_expiration: "360d"

handlers:
- url: /_ah/mail/.+
  script: myapp/utils/handle_incoming_email.py
Run Code Online (Sandbox Code Playgroud)

邮件处理程序脚本如下所示

handle_incoming_email.py

import logging
import urllib
import base64
import traceback
from google.appengine.ext import webapp
from google.appengine.ext import blobstore
from google.appengine.api import urlfetch
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler


class ReceiveEmail(InboundMailHandler):

    def receive(self, message):
        try:
            for filename, filecontents in message.attachments:
                if filecontents.encoding:
                    # data = filecontents
                    data = filecontents.decode()
                    # data …
Run Code Online (Sandbox Code Playgroud)

google-app-engine urlfetch blobstore python-2.7

5
推荐指数
1
解决办法
2649
查看次数

如何在开发服务器(Google App Engine)中使用生产BlobStore

我正在使用Python Google App Engine开发一个应用程序,我正在使用BlobStore来存储图像数据.

我已将所有数据库信息备份到本地主机以设置本地开发环境,但我想使用生产服务器中的Blobs映像(因此我不必将所有文件复制到本地计算机).

当我调用images.get_serving_url()来获取图像url时,它返回一个不存在的本地引用(因为所有图像都在prod服务器中).

有没有办法配置图像类指向我的prod服务器?如果答案是否定的,我如何将来自我的开发服务器的调用重命名为/ _ah/img /到我的prod服务器?

from google.appengine.api import images
print images.get_serving_url(page, size=100)

>> http://0.0.0.0:8080/_ah/img/AMIfv96IySWiIWF-4FRipavsn9xXnkk-EhmNOU0qWZ4y0ORIXj0Ct85C9eXMBdv3JVooWPIm6-2D3U9ffuTtpJEkWh13ZzmmaNKSiu5QMsnk0exNWj7g1OWbpNxcsjtmv52wz94QFQ6xCNz-atycTqfkdDHbX-LWmMqlsrVEs86S4wsAKSNOZZE=s100
Run Code Online (Sandbox Code Playgroud)

我希望这次调用的输出是我的prod服务器url.

python google-app-engine image blobstore

5
推荐指数
1
解决办法
1151
查看次数

将Blobstore迁移到GCS:Google App Engine Python

这是我现有的用于将数据上传到blobstore的 py代码.

from google.appengine.api import files

def save_data_to_blob_store(data):
    # Create the file
    file_name = files.blobstore.create(mime_type='application/octet-stream')

    # Open the file and write to it
    with files.open(file_name, 'a') as f:
        f.write(data)

    # Finalize the file. Do this before attempting to read it.
    files.finalize(file_name)

    # Get the file's blob key
    blob_key = files.blobstore.get_blob_key(file_name)
    return str(blob_key)
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试弃用blobstore并转移到GCS.我写了一些代码但没有按预期工作.

def save_data_to_gcs(request):
    file_name = '/gs/bucket-name-1/new_file' # change bucket/object names to suit your needs
    writable_file_name = files.gs.create(file_name, mime_type='application/octet-stream',
                                     acl='public-read')
    with files.open(writable_file_name, 'a') as f:
        f.write('Hello …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine blobstore google-cloud-storage

5
推荐指数
1
解决办法
1573
查看次数

Google云端存储身份验证

我构建了Google云端存储的Android应用链接.我想只允许访问GCS到我的Android应用程序.

Google提供三种安全连接到GCS的解决方案:

  • Oauth 2.0(所以谷歌帐户)
  • 基于Cookie的帐户(也使用谷歌帐户)
  • 服务帐户身份验证(使用私钥,但在Android应用程序上本地安装:如果有人反编译我的.apk,则非常糟糕)

来源:https://developers.google.com/storage/docs/authentication?hl = FR

有没有其他解决方案可以通过GCS安全连接?我想以这种方式连接GCS(限制为Android客户端ID:SHA1到您的.apk):https://developers.google.com/appengine/docs/java/endpoints/auth

GCS有可能吗?我应该使用Blobstore吗?

提前致谢

authentication google-app-engine blobstore google-cloud-storage google-cloud-endpoints

5
推荐指数
1
解决办法
1507
查看次数

从弃用的Blobstore File API到服务blob

我正在使用与我的Android应用程序相关的Google App Engine端点.在我的一个端点中,我有一个方法,它采用Base64编码的图像,然后存储在Blobstore中.检索图像是通过Google ImageService的服务URL完成的.

所以,我有两个问题.首先,我不推荐使用我正在使用的Blobstore File API.其次,调用非常慢,因为服务器在存储blob时同步工作,稍后在serve-url和blob-key上工作.

所以我的问题是,如何更改代码以使用Google(servlets)提出的Blobstore,但在Android代码中继续使用我非常好的Endpoint.有没有办法在不使用HttpRequest类的情况下继续使用该方法?

简而言之:

  1. 我可以将客户端调用保留到端点,还是需要更改该代码?
  2. 如果我可以保留端点的客户端/服务器端接口,我如何重定向到Blobstore以异步保存图像,然后调用另一个servlet来存储blobkey和serve-url?

这是我的代码.

从Android客户端发送到Google应用引擎的实体.

@Entity
public class Image {

    @Id
    private int id = -1;
    private byte[] data;
    private String mimeType;
    private int width;
    private int height;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public byte[] getData() {
        return data;
    }

    public void setData(byte[] data) {
        this.data = data;
    }

    public String getMimeType() {
        return mimeType;
    }

    public void setMimeType(String …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine android blobstore google-cloud-endpoints

5
推荐指数
1
解决办法
718
查看次数

Sonatype Nexus - 我可以手动压缩 blob 存储吗?

我的 CENTOS7 机器上的磁盘已满。无需删除任何内容即可安全地释放一些空间,而不会有损坏某些内容的风险。

由于磁盘已满,OrientDB 已切换到只读模式,因此我无法创建紧凑 Blob 存储任务来清理磁盘空间。我需要手动执行此操作。

  • 不,我无法添加额外的磁盘空间。

是否可以找到“紧凑 blob 存储”任务的源并手动/外部运行它?

Nexus 版本是 3.12.1-01

多谢!

nexus sonatype blobstore centos7 nexus3

5
推荐指数
1
解决办法
7491
查看次数

从 Python 中的 download_as_string 访问 blob 对象中的数据

我正在尝试访问和修改从 Google Cloud Functions 中的 Google Cloud Storage 中提取的换行 JSON 文件中的数据。结果始终显示为数字,尽管它不是 JSON 中的数据。

我看到 blob 对象的 download_as_string() 返回字节(https://googleapis.github.io/google-cloud-python/latest/_modules/google/cloud/storage/blob.html#Blob.download_as_string),但在任何引用中我明白了,每个人都可以很好地访问他们的数据。

我在 Cloud Functions 中执行此操作,但我认为我的问题适用于任何 GCP 工具。

我下面的示例应该加载换行 JSON 数据,将其添加到列表中,选择前两个字典条目,转换回换行 JSON 并输出到 GCS 上的 JSON 文件。下面列出了示例、代码和错误输出。

示例换行 JSON 输入

{"Website": "Google", "URL": "Google.com", "ID": 1}
{"Website": "Bing", "URL": "Bing.com", "ID": 2}
{"Website": "Yahoo", "URL": "Yahoo.com", "ID": 3}
{"Website": "Yandex", "URL": "Yandex.com", "ID": 4}
Run Code Online (Sandbox Code Playgroud)

云函数中的代码

{"Website": "Google", "URL": "Google.com", "ID": 1}
{"Website": "Bing", "URL": "Bing.com", "ID": 2}
{"Website": "Yahoo", "URL": "Yahoo.com", "ID": …
Run Code Online (Sandbox Code Playgroud)

python blobstore google-cloud-storage google-cloud-platform google-cloud-functions

5
推荐指数
1
解决办法
5万
查看次数

尝试在本地上传到Blobstore的OutOfMemoryError

我正在尝试将基本文件上传到blobstore,但是我得到了这个OutOfMemoryError:

警告:/ _ah/upload/aghvbWdkcmVzc3IcCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGMACDA错误java.lang.OutOfMemoryError:java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:71)中的java.util.Arrays.copyOf(Arrays.java:2786)中的Java堆空间javax.mail.internet.MimeMultipart.readTillFirstBoundary(MimeMultipart.java:316),位于javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:186),位于javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:109) com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload(UploadBlobServlet.java:135)位于com的com.google.appengine.api.blobstore.dev.UploadBlobServlet.access $ 000(UploadBlobServlet.java:72). java.security上的google.appengine.api.blobstore.dev.UploadBlobServlet $ 1.run(UploadBlobServlet.java:100).AccessController.doPrivileged(Native Method)位于javax的javax.servlet.http.HttpServlet.service(HttpServlet.java:713)的com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost(UploadBlobServlet.java:98). Servlet.http.HttpServlet.service(HttpServlet.java:806)at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511);

我在Eclipse上使用了Memory Analyzer,它说内存泄漏可疑是QueuedThreadPool.我发现了有关内存泄漏错误的信息:

http://jira.codehaus.org/browse/JETTY-1188

其他人遇到过这个问题吗?

谢谢,让

google-app-engine blobstore

4
推荐指数
1
解决办法
1519
查看次数