首页 > 解决方案 > Storage.put() 在 React + AWS Amplify 应用程序中返回错误请求错误(状态代码 400)

问题描述

代码:

import { API, Storage } from "aws-amplify"
import { FilePond, registerPlugin } from "react-filepond"
...
const [newMedia, setNewMedia] = useState()
...
const mediaUpload = () => {
  Storage.put(newMedia[0].file, "test.png")
   .then((res) => console.log(res, "Upload result"))
   .catch((err) => console.error(err, "Error log"))
}
...
<FilePond
  allowMultiple={false}
  allowFileRename={true}
  fileRenameFunction={(file) => uuid() + file.extension}
  onupdatefiles={(file) => setNewMedia(file)}
  labelIdle='Drag & Drop your files or <span class="filepond--label-action">Browse</span>'
/>

<Button color="primary" onClick={() => mediaUpload()}>
  Upload
</Button>

我已经按照此Amplify doc中的描述进行了尝试。

但是现在我遇到了这样的错误。

错误代码截图

即使我遵循了官方文档,我也不知道为什么会出现此错误。我认为我的 S3 存储桶策略存在问题,但我找不到正确的解决方案。

我没有使用现有的 S3 存储桶,而是使用 Amplify CLI 在我的项目中从头开始对其进行初始化。

我可以使用react-s3节点模块来避免这个错误。但只是上传。删除存储桶上的对象的功能目前不起作用。

目前,我的存储桶的策略设置为 react-s3 定义的。

请告诉我应该如何使标准功能正常工作。

标签: javascriptreactjsamazon-s3aws-amplifyhttp-status-code-400

解决方案


推荐阅读