首页 > 解决方案 > 尝试通过 React 访问 AWS 中的用户设置时引发“无凭据”错误

问题描述

我正在尝试在 React 中创建一个系统,用户可以在其中登录并更改其凭据。我还试图允许用户保存个人资料图片。每当他们上传图片时,它都会出现在设置页面上,但我似乎无法找到再次获取它的方法。要保存图像文件,这就是我正在使用的。

Storage.put("profile.png", file, {
  contentType: "image/png"
})

然后我Storage.get("profile.png")用来获取图像。问题是当我尝试获取图像时,我收到一个错误提示“无凭据”,并且在控制台中,我看到一条消息“在启用强制登录时无法获取访客凭据”。当我尝试保存图像时,我也会收到相同的“无凭据”错误。有谁知道发生了什么?这是我用于保存和检索图像的代码。

  onProcessFile = async (e) => {
    e.preventDefault();
    let reader = new FileReader();
    const file = e.target.files[0];
    try {
      reader.readAsDataURL(file);
    } catch (err) {
      alert(err);
    }
    reader.onloadend = () => {
      setImage(reader.result)
    };
    const { id } = await Auth.currentUserPoolUser();
    Storage.put("profile.png", file, {
      contentType: "image/png"
    })
      .then(result => console.log(result))
      .catch(err => alert(err));
  };
  getCurrentUser = async () => {
    Storage.get("profile.png")
    .then(url => {
      var myRequest = new Request(url);
      fetch(myRequest).then(function(response) {
        if (response.status === 200) {
          setImage(url)
        }
      });
    })
    .catch(err => alert(err));
  }

标签: javascriptreactjsamazon-web-services

解决方案


我的猜测是您需要在您的存储桶上设置正确的凭据,以便能够在用户登录时获取图像。这是一个更深入地探讨这个主题的链接。设置存储桶凭据


推荐阅读