首页 > 解决方案 > 如何将 s3 amazon 连接到您的 django 项目?

问题描述

我已经在 s3 存储桶中上传了图片和静态文件,但现在错误是当我们转到路径时,图片没有出现:

当我们检查它时,它会显示应该放置图像的正确路径:

当我们从 s3 访问它时,我们可以在这里看到每张图片

我们需要更改网址吗?如果是的话怎么做?

而且访问也是公开的

标签: pythondjangoamazon-web-servicesamazon-s3amazon-ec2

解决方案


依赖项

您将需要安装两个 Python 库:

  1. 博托3
  2. django-storages

boto3 库是一个公共 API 客户端,用于访问 Amazon Web Services (AWS) 资源,例如 Amazon S3。这是由亚马逊维护的官方发行版。

亚马逊 S3 设置

django-storages 是一个开源库,用于管理 Dropbox、OneDrive 和 Amazon S3 等存储后端。这非常方便,因为它插入了内置的 Django 存储后端 API。换句话说,它会让你的生活更轻松,因为它不会彻底改变你与静态/媒体资产交互的方式。我们只需要添加一些配置参数,它就会为我们完成所有艰苦的工作。

在我们进入 Django 部分之前,让我们设置 S3 部分。我们将需要创建一个有权管理我们的 S3 资源的用户。

登录 AWS 网页,在服务列表中找到 IAM,它在 Security、Identity & Compliance 下列出:

恰当的

转到用户选项卡并单击添加用户按钮:

适当的2

提供用户名并选择编程访问选项:

在此处输入图像描述

单击下一步以继续访问权限。此时,我们需要创建一个具有正确 S3 权限的新组,并将我们的新用户添加到其中。按照向导并单击创建组按钮:

在此处输入图像描述

为组定义一个名称并搜索内置策略 AmazonS3FullAccess:

在此处输入图像描述

单击 Create group 以完成组创建过程,在下一个屏幕中,最近创建的组将显示为选中状态,保持这种状态,最后单击按钮 Next: Review:

在此处输入图像描述

查看信息,如果一切正确,则继续创建新用户。接下来,您应该会看到以下信息:

记下所有信息:用户、访问密钥 ID 和秘密访问密钥。保存它们以备后用。

单击关闭按钮,让我们继续。现在,是时候创建我们的第一个存储桶了。

Bucket 就是我们在 S3 中所说的存储容器。我们可以在同一个 Django 项目中使用多个存储桶。但是,在大多数情况下,每个网站只需要一个存储桶。

单击“服务”菜单并搜索 S3。它位于存储下。如果您看到下面的屏幕,那么您来对地方了。

在此处输入图像描述

单击 + 创建存储桶以启动流程。为您的存储桶设置符合 DNS 的名称。它将用于识别您的资产。就我而言,我选择 sibtc-static。所以我的资产的路径将是这样的:https ://sibtc-static.s3.amazonaws.com/static/ 。

在此处输入图像描述

保持其余设置不变,仅使用默认设置继续下一步,最后点击创建存储桶按钮。接下来,您应该会看到以下屏幕:

在此处输入图像描述

在此处阅读更多信息以了解有关安装的信息。


推荐阅读