Django使用API​​将图像上传到cdn

时间:2016-09-13 17:56:16

标签: python django file-upload cdn

我正在Pythonanywhere.com上的Django建立一个网站,我正在使用Backblaze的B2云存储来存储所有静态和媒体文件。我上传到Backblaze的我的CSS和图像正在工作,但我无法弄清楚所有内容应该如何组合在一起,所以这就是我所处的位置(最小化):

在这个模型中,我想存储一个缩略图,我有一个表单正在上传它。

class Post(models.Model):
    (...)
    thumbnail = models.ImageField(null=True, blank=True, width_field="width_field", height_field="height_field")
    (...)

Backblaze拥有我需要的http请求和响应的所有代码,所以我只是将其粘贴在一个单独的文件中。我首先需要获得帐户授权令牌,然后是上传网址,然后我可以发送文件。

因此整个函数需要三个输入:文件日期,文件名和文件大小。作为输出,我得到文件ID(和其他东西,详细信息here)。

现在我想知道我需要在哪里调用上传功能,我认为它与" upload_to" ImageField中的参数。我想知道实际存储在ImageField中的是什么,因为我不会告诉ImageField查找文件的位置。它是否在设置文件中使用媒体根目录,我该如何管理?

1 个答案:

答案 0 :(得分:0)

在设置中使用这些命令,您可以设置MEDIA_URL以及存储图像的位置。这里的图像存储在src / media_cdn

MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media_cdn")

如果upload_to设置为None,你必须告诉upload_to应该将图像保存在media_cdn内的路径,否则它会将图像保存在media_cdn中。

models.ImageField(upload_to='profiles/')

您需要上传图片。所以,它包含图像存在的地址。