您好,我正在尝试将客户的图片直接上传到reactjs web app中的amazon s3。我在后端生成预签名的url,如下所示
def get_presigned_url(file_extension, content_type, user_id) do
config = get_aws_s3_config()
bucket = get_bucket_name()
filename = create_s3_file_name(file_extension, user_id)
query_params = [{"ContentType", content_type}]
ExAws.S3.presigned_url(config, :put, bucket, filename, query_params: query_params)
end
生成的url看起来像这样。
https://s3.us-west-1.amazonaws.com/churchapp-la/5/ab49d601efed40e0a6de0509ab78c091.png?ContentType=image/png
在客户端我这样做
async function uploadImage(url, data, headers) {
const response = await fetch(url, {
method: "PUT",
headers: headers,
body: data
});
return response;
}
const handleUpload = e => {
const formData = new FormData();
formData.append("image", file);
const myHeaders = new Headers();
myHeaders.append("ContentType", file.type);
uploadImage(presignedUrl, formData, myHeaders)
.then(data => console.log("Printing uploadImage result: ", data.url))
.catch(error => {
console.log("Error: ", error);
});
};
当我点击upload时,handleUpload函数被调用并上传到S3。但是当我试图打开一个文件时,它没有打开。并且说签名不匹配。
我用谷歌搜索了一下。有人说头应该在后端和前端匹配,我认为我做得对。
我只设置ContentType和值是相同的两边...
有什么想法吗?请帮忙!
您应该将Content-Type
而不是ContentType
设置为两个位置的标题名。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
嗨,当我尝试使用vue应用程序中预先指定的url将图像上传到我的amazon aws bucket时,我收到了400个错误请求。我已经成功生成了一个预先签名的url,但我无法使用它将图像发布到我的bucket。 获取预签名网址的路线 Vue client Vuex操作发布到预先指定的url Aws CORS许可 我得到“请求失败,状态代码400”错误。
当用户上传图片时,我正在动态调整图像大小。原始图片存储在Amazon S3上一个名为djangobucket的bucket中。在这个桶中,包含数千个文件夹。 每个文件夹都以用户命名。我不必担心存储桶创建或文件夹创建,因为所有这些都是从客户端处理的。 下图为: 如您所见,Bob有许多图片。一旦用户将图片上传到S3,我就会通过URL通过Django下载它,在这种情况下,它将是:http://s3.am
我正在尝试使用 java 对亚马逊 S3 进行分段上传。我正在使用下面链接中的代码。 http://docs.aws.amazon.com/AmazonS3/latest/dev/llJavaUploadFile.html 方案 1:要上载的文件大小为 31627。我使用 partSize 作为 500000 来指定单个部件的大小。 由于文件的大小小于部分大小,因此文件将上传到 S3。 方案 2:
我正在使用AWS JAVA SDK自动调用设备场。我已经成功地创建了project、创建了upload并生成了S3预签名url,但现在我必须使用这个预签名url发送IPA文件。 这是我的代码,请让我知道我做错了什么。我认为我没有以正确的方式将文件发送到服务器。请共享使用预签名url发送文件的代码示例。我已经尝试了许多不同的方法将文件发送到设备场。 任何帮助将不胜感激。
我需要上传一个文件到S3与邮递员测试。我有一个从S3生成的预签名URL。 但是我不知道如何正确地配置postman,以便对生成的预签名URL执行此PUT请求。 邮件头格式错误的postman上的响应是: 预签名请求的参数: 我得到了URL,然后在邮递员中输入它,用PUT请求,但标题不完整?1.如果我在头上添加content-type,服务器2没有响应。在请求的正文中,Im以“二进制”的形式附加文件
我正在尝试使用亚马逊-S3 REST API来上传大文件。 根据这里的API文档,我与邮递员形成了我的请求,如下所示。 我了解多部分顺序,但在执行上传部分编号的步骤时 我在各种论坛上找到了多种解决方案,但这些方案都不起作用。我错过了什么吗?