我正在使用python api并在测试期间创建了一些孤立的blob.
由于仪表板中存在错误,我目前无法删除这些错误,并且在任何情况下我都希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将是不可行的.
我如何在GWT和AppEngine Blobstore中创建类似Gmail的现代多文件上传?
最常提出的解决方案是gwtupload,这是由Manolo Carrasco编写的优秀GWT组件.但是,最新版本0.6.6不适用于blobstore(至少我无法使其工作),并且它不支持多文件选择.在最新的0.6.7快照中有一个用于多文件选择的补丁,但是虽然它允许选择多个文件(使用HTML5中的"multiple"属性),但仍然会在一个巨大的POST请求中发送它们(并显示进度整堆文件).
关于SO还有其他问题(例如此处或此处),但答案通常使用HTML5"multiple"属性并将它们作为一个大的POST请求发送.它有效,但它不是我追求的.
我正在开发一个应用程序来处理打到我邮箱的电子邮件.我修改了我的邮件设置以将传入的邮件转发到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) 我正在使用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.
这是我现有的用于将数据上传到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) 我构建了Google云端存储的Android应用链接.我想只允许访问GCS到我的Android应用程序.
Google提供三种安全连接到GCS的解决方案:
来源: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
我正在使用与我的Android应用程序相关的Google App Engine端点.在我的一个端点中,我有一个方法,它采用Base64编码的图像,然后存储在Blobstore中.检索图像是通过Google ImageService的服务URL完成的.
所以,我有两个问题.首先,我不推荐使用我正在使用的Blobstore File API.其次,调用非常慢,因为服务器在存储blob时同步工作,稍后在serve-url和blob-key上工作.
所以我的问题是,如何更改代码以使用Google(servlets)提出的Blobstore,但在Android代码中继续使用我非常好的Endpoint.有没有办法在不使用HttpRequest类的情况下继续使用该方法?
简而言之:
这是我的代码.
从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
我的 CENTOS7 机器上的磁盘已满。无需删除任何内容即可安全地释放一些空间,而不会有损坏某些内容的风险。
由于磁盘已满,OrientDB 已切换到只读模式,因此我无法创建紧凑 Blob 存储任务来清理磁盘空间。我需要手动执行此操作。
是否可以找到“紧凑 blob 存储”任务的源并手动/外部运行它?
Nexus 版本是 3.12.1-01
多谢!
我正在尝试访问和修改从 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
我正在尝试将基本文件上传到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
其他人遇到过这个问题吗?
谢谢,让