python - 如何将 s3 amazon 连接到您的 django 项目?
问题描述
我已经在 s3 存储桶中上传了图片和静态文件,但现在错误是当我们转到路径时,图片没有出现:
当我们从 s3 访问它时,我们可以在这里看到每张图片
我们需要更改网址吗?如果是的话怎么做?
解决方案
依赖项
您将需要安装两个 Python 库:
- 博托3
- 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 下列出:
转到用户选项卡并单击添加用户按钮:
提供用户名并选择编程访问选项:
单击下一步以继续访问权限。此时,我们需要创建一个具有正确 S3 权限的新组,并将我们的新用户添加到其中。按照向导并单击创建组按钮:
为组定义一个名称并搜索内置策略 AmazonS3FullAccess:
单击 Create group 以完成组创建过程,在下一个屏幕中,最近创建的组将显示为选中状态,保持这种状态,最后单击按钮 Next: Review:
查看信息,如果一切正确,则继续创建新用户。接下来,您应该会看到以下信息:
记下所有信息:用户、访问密钥 ID 和秘密访问密钥。保存它们以备后用。
单击关闭按钮,让我们继续。现在,是时候创建我们的第一个存储桶了。
Bucket 就是我们在 S3 中所说的存储容器。我们可以在同一个 Django 项目中使用多个存储桶。但是,在大多数情况下,每个网站只需要一个存储桶。
单击“服务”菜单并搜索 S3。它位于存储下。如果您看到下面的屏幕,那么您来对地方了。
单击 + 创建存储桶以启动流程。为您的存储桶设置符合 DNS 的名称。它将用于识别您的资产。就我而言,我选择 sibtc-static。所以我的资产的路径将是这样的:https ://sibtc-static.s3.amazonaws.com/static/ 。
保持其余设置不变,仅使用默认设置继续下一步,最后点击创建存储桶按钮。接下来,您应该会看到以下屏幕:
在此处阅读更多信息以了解有关安装的信息。
推荐阅读
- java - 线程池中的 Netty 连接
- java - 通过 FileChooser 保存 pdf 格式在 java 中提示第二个对话框
- c++ - 带参数的数据结构的全局声明
- php - 使用正则表达式从多行中获取分离的数据
- android - 如何使用 GridLayout 在 Recyclerview + Cardview 中嵌入 Admob 原生广告和插页式广告
- ads-data-hub - 访问 Google Ads 数据中心
- python - 根据它们在熊猫面板中的各自值的组 ID
- javascript - 当呼叫来自 JS Ajax 时如何重定向到 Laravel 路由
- linux - 将 Jenkins 声明性管道脚本转换为正常的管道脚本不起作用(管道到节点)
- javascript - 1x1 模型threejs 上的贴图纹理