【发布时间】:2012-12-30 01:21:52
【问题描述】:
我正在开发一个应用程序,用户将在其中创建一个数据对象并将其上传到存储中。然后他们稍后会下载它,进行一些更改,然后上传这些更改(作为原始数据的补丁)。有没有办法使用 blobstore 或云存储来上传补丁并应用它,这样我的用户就不必再次上传整个数据对象(可能会变得非常大)?
【问题讨论】:
标签: google-app-engine blobstore google-cloud-storage
我正在开发一个应用程序,用户将在其中创建一个数据对象并将其上传到存储中。然后他们稍后会下载它,进行一些更改,然后上传这些更改(作为原始数据的补丁)。有没有办法使用 blobstore 或云存储来上传补丁并应用它,这样我的用户就不必再次上传整个数据对象(可能会变得非常大)?
【问题讨论】:
标签: google-app-engine blobstore google-cloud-storage
您不能对 Blobstore 或 Cloud Storage 中的数据发出增量更新。要应用补丁,您必须自己应用它并覆盖 blob 或对象中的数据。相关信息如下。
来自 Google Cloud Storage 文档的 Concepts and Terminology section:
对象是不可变的,这意味着上传的对象不能 在整个存储生命周期内发生变化。对象的存储寿命 是成功创建(上传)对象和成功之间的时间 对象删除。在实践中,这意味着你不能使 对对象的增量更改,例如追加操作或截断 操作。但是,可以覆盖对象 存储在 Google Cloud Storage 中,因为正在进行覆盖操作 执行删除对象操作,然后立即上传 对象操作。所以一个单一的覆盖操作只是标志着结束 一个不可变对象的生命周期和一个新对象的开始 不可变对象的生命周期。
来自Blobstore Introduction section:
Blob 在创建后无法修改,但可以 删除。每个 blob 都有一个对应的 blob 信息记录,存储在 数据存储,提供有关 blob 的详细信息,例如它的创建 时间和内容类型。您可以使用 blob 键来获取 blob 信息 记录并查询其属性。
【讨论】: