- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个从给定网址获取图像并将其保存到 Google Cloud Storage 并检索服务网址的过程。现在,我的理解(根据我读过的文档)是我还必须在引用 GCS 文件的过程中创建一个 blob。如果我的理解不正确,请告诉我。
获取图像并尝试保存它的处理程序是:
img_request = urlfetch.fetch(img_url)
if img_request.status_code == 200:
img_title = hashlib.sha1(img_url).hexdigest()
img_content = img_request.content
img_type = img_request.headers['content-type']
cloud_storage_filename = '/images/%s/%s' % (self.source_name, img_title)
blobstore_filename = '/gs%s' % cloud_storage_filename
blobstore_key = blobstore.create_gs_key(blobstore_filename)
cloud_storage_file = gcs.open(filename=cloud_storage_filename, mode='w', content_type=img_type)
cloud_storage_file.write(img_content)
cloud_storage_file.close()
# If I print blobstore_key at this stage, I am getting a result here.
blobstore_key = blobstore.get(blobstore_key).key()
blobstore_serving_url = images.get_serving_url(blobstore_key)
# Structured Property to be part of a Datastore Model
img_model = data_model.Image(
s_source_url = img_url,
k_blob_key = blobstore_key,
s_serving_url = blobstore_serving_url
)
return img_model
这在 dev_appserver 上工作正常,但是,在生产中它会引发以下错误:
blobstore_key = blobstore.get(blobstore_key).key()
AttributeError: 'NoneType' object has no attribute 'key'
为什么这个错误是在生产中而不是在 dev_app 服务器上出现的?好像一开始就没有生成 key ...
正如我在代码中评论的那样,当我在调用 blobstore.get(blobstore_key).key()
之前打印 blobstore_key
时,它会打印出一个 key ,所以它一直工作到那里。问题大概是,当我在键上调用 blobstore.get()
时,它得到 None
... 为什么???
还是我做错了什么?谢谢!
最佳答案
blobstore.get()
是 BlobInfo.get()
的同义词,关于 this 的注释页面说:
However, BlobInfo objects are currently not available for GCS objects.
这可以解释为什么您的 blobstore.get()
返回 None
。
此外,您不希望从这两行中收到相同的结果吗?
blobstore_key = blobstore.create_gs_key(blobstore_filename)
blobstore_key = blobstore.get(blobstore_key).key()
关于google-app-engine - 生产中的 Blobstore 不会获取 BlobKey(而在 dev_appserver 中会获取),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20828265/
我想知道保存 blobstore 引用的最佳方法是什么记录的方式是这样的: blobstore.BlobReferenceProperty() 或 ndb.BlobKeyProperty() 或 db
我已经实现了 appengine docs 中提到的通用 blob 服务处理程序。 .只要您知道该 blob 的 key 字符串,该处理程序就会为您提供任何 blob。我使用它来轻松编写客户端可以用来
我想为该用户上传到服务器的文件提供服务(编辑)。将其保存到 blobstore 后,我想将其加载到内存中进行编辑。存储文件后,我得到了 BlobKey 作为返回。据我了解,我应该使用以下方法将其加载到
您好,我正在尝试制作一个 servlet,允许管理员上传图像,并允许任何 google 用户查看这些图像,到目前为止,我正在使用 https://developers.google.com/appen
我从数据存储区获取 blobkey。 现在我想使用这个 blobkey 来获取 blobstore 中 blob 的内容类型。 怎么做? 最佳答案 您可以尝试此代码 BlobInfoFactory b
这是一个服务器端问题。我只有一个 BlobKey,没有其他东西。如何从所述 BlobKey 获取 blob 文件名?我知道如何获取servingUrl为 ServingUrlOptions optio
我编写了一个 Google App Engine 应用程序,它使用 Blobstore 来保存以编程方式生成的数据。为此,我使用了 Files API ,不幸的是,它已被弃用,取而代之的是 Googl
我正在从已弃用的文件 API 中转换代码。 我有以下代码在 SDK 服务器中运行良好但在生产环境中失败。我在做什么是正确的吗?如果是,可能出了什么问题,有什么解决方法吗? # Code earlier
我正在尝试在 GoogleAppEngine 上保存并提供一个 blob。 // Save the data as a blob final FileService fileService = Fil
我有一个从给定网址获取图像并将其保存到 Google Cloud Storage 并检索服务网址的过程。现在,我的理解(根据我读过的文档)是我还必须在引用 GCS 文件的过程中创建一个 blob。如果
我正在运行本地开发服务器并使用 image.ServingURL 从存储在 Google 存储中的 BlobKey 创建一个 url。这个 url 应该返回开发服务器上的图像吗? 我收到这样的错误:C
这里发生了奇怪的事情。运行任何调用的单元测试时: FileService fileService = FileServiceFactory.getFileService(); writeChannel
因此,由于新的高性能图片服务,我决定重写我的图片库。这意味着使用我以前从未使用过的 Blobstore。在我尝试将 BlobKey 存储在我的模型中之前,它看起来很简单。 到底如何在模型中存储对 bl
我有一个充满 BlobKey 的数据库,这些 BlobKey 是以前通过标准 Google App Engine 上传的 create_upload_url()过程,并且通过设置 gs_bucket_
在我的 Android 应用程序中,我想将图像上传到 Blobstore,然后检索上传 url 和图像的 Blobkey,这样我就可以将 Blobkey 存储在 DataStore 中。 我试过这段代
我是一名优秀的程序员,十分优秀!