【问题标题】:How to fetch data from AWS S3 bucket using Django Rest API如何使用 Django Rest API 从 AWS S3 存储桶中获取数据
【发布时间】:2021-10-15 05:12:41
【问题描述】:

我正在尝试使用 jquery 异步函数从 django rest api 获取我的媒体文件,该函数在开发中运行良好,但现在我已将应用程序部署到 Heroku,并且我的媒体文件由 AWS S3 提供bucket,所以这个 fetch 函数不再起作用了。

音乐.js

   async function getUserTracks() {
      await fetch("http://127.0.0.1:8000/music/music_all/?format=json")
        .then(res => res.json())
        .then(data => {
          for (item of data)
            trackNames.push(item['title']),
              trackUrl.push(item['track']),
              albums.push(item['artist_name'])
          // console.log(trackNames, trackUrl, albums)
        });
    }

如您所见,获取 url 是一个 localhost 地址,我的问题是我如何获取这些文件,现在它们在 AWS 中?

【问题讨论】:

    标签: django amazon-web-services heroku django-rest-framework


    【解决方案1】:

    我会使用像 django-storages 这样的库 - 它会引导您了解如何轻松引用 AWS S3 存储桶,然后您可以通过简单的方法从 AWS 中提取文件。

    祝你好运,如有其他问题,请跟进。

    【讨论】:

    • 谢谢,我已经安装了 django-storages,它可以很好地与本地运行的 django rest api 配合使用,并从 AWS 中提取,但是现在 Heroku 上的应用程序,提取功能不起作用。我什至尝试将 fetch url 更改为新的 heroku api root url,但仍然没有运气
    • 您是否有尝试调试的特定错误代码?我认为这是某种安全/权限问题:可能是 1. 您的 Heroku 权限不允许您从 AWS 存储桶下载文件 - 您需要将它们列入白名单。 2. 您的 AWS 权限不允许来自 Heroku 服务器的请求 - 您需要将 Heroku IP 地址列入白名单 3. 根据您的 Django 设置,您的 Web 服务器不允许 Heroku 或 AWS。
    猜你喜欢
    • 1970-01-01
    • 2022-11-19
    • 2022-01-18
    • 1970-01-01
    • 2019-02-17
    • 2020-06-15
    • 2017-05-06
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多