【问题标题】:migrating images to google app engine datastore or blobstore将图像迁移到谷歌应用引擎数据存储或 blobstore
【发布时间】:2015-03-16 10:27:16
【问题描述】:

我有属性模型,包含一个字段 image_url。

class Property(ndb.Model):
    date_created=data.UTCDateTimeProperty(auto_now_add=True)
    # some other fields here
    image_url = ndb.StringProperty(indexed=False)

和图像模型,

class Image(ndb.Model):
    property = ndb.KeyProperty()
    file = ndb.KeyProperty(indexed=False)
    # some other fields
    image_url = ndb.StringProperty(indexed=False)

现在,我的本地计算机中的每个属性都有 'n' 个图像。每个图像的名称都映射到 csv 文件中相应的属性 id。我想将所有这些图像从我的本地机器批量上传到谷歌应用引擎数据存储或 blobstore。 我试图用谷歌搜索,但感觉我被困住了,任何帮助或参考将不胜感激。

【问题讨论】:

  • Blobstore 正在被弃用,取而代之的是 Google Cloud Storage (GCS) - 正如 Jaime 所说,在任何新应用程序中而不是使用后者。而且,图像 data 最好保存在 GCS 中,仅将数据存储用于结构化 meta 数据,通常是您需要查询的信息。

标签: python google-app-engine google-cloud-datastore blobstore


【解决方案1】:

Google Cloud Storage 可能是您更好的选择:

  • 你会得到一个很好的程序来使用它,gsutil,它可以让你轻松地从控制台上传,这样你就可以编写自己的脚本了:)

  • 您可以保留已有的文件名,并设置您自己的目录结构,以便它对您的应用程序更有意义。如果数据是静态的,那么您甚至可能不需要支持模型。

例如,从上面的链接中,您最终将如何上传图片:

gsutil cp *.jpg gs://images

cp 命令的行为很像带有递归 (-R) 选项的 Unix cp 命令,允许您复制整个目录或仅复制目录的内容。 gsutil 还支持通配符,方便您批量复制或移动文件。

【讨论】:

  • 目前我正在使用 blobstore 为 self.request.POST.itervalues() 中的 field_storage 上传图像: file = File.build_by_field_storage(field_storage) to_put.append(file) image = Image.build(file= file,property=property.key) to_put.append(image) results.append(self.get_image_result(image)) 我不能有类似的东西,但要批量处理。
  • 感谢您的回复。我也可以从控制台将图像上传到 blobstore 吗?如果是,请给我一些 sn-p 或参考。
  • 您需要知道的一切都在这些链接中,不幸的是,您必须仔细阅读才能实现这一点,但这非常值得您花时间。我仍然从参考资料中添加了一个 sn-p,以便您了解您将能够做什么。
猜你喜欢
  • 2023-04-08
  • 2012-03-03
  • 2014-10-21
  • 2012-06-11
  • 2013-05-17
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
相关资源
最近更新 更多