在GAE上存储blob图像的正确方法

2024-03-29 10:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有两个选项来存储blobstore上的一些图像。你知道吗

我有一个用户模型class User(db.Model),在那里我为用户保存了一个化身。 一种选择是将化身保存为blobstore.BlobReferenceProperty(),然后使用get\u serving\u url从用户.avatar参考文献。你知道吗

class User(db.Model):
    avatar = blobstore.BlobReferenceProperty()

url = get_serving_url(user.avatar)

另一个选项是使用get_serving_url()获取图像的路径,并将其作为LinkProperty保存在用户模型中,稍后只使用此链接来服务图像。你知道吗

url = get_serving_url(image_file)
class User(db.Model):
    avatar = db.LinkProperty()

这两种方法是否有显著差异?如果有,哪种方法更可取?谢谢。你知道吗


Tags: 用户模型图像urldbgetmodel选项
3条回答

您应该在模型中保存这两个引用。您可以使用blobReferenceProperty来引用最新版本的blob以进行维护(删除和更新)以及用于服务图像的url,因为您只需要获取一次服务url。你知道吗

你应该把它们都储存起来。BlobReference可以删除实际的blob和URL,以避免每次调用get_serving_url(),这可能会很慢。由^{}返回的URL是不可更改的,除非^{}被调用,以防它需要重置,因为该URL是公共的但不可使用。你知道吗

使用BlobReferenceProperty。如果您存储了服务的url,您就不能真正删除blob,因为您没有对它的任何引用。你知道吗

相关问题 更多 >