当前位置: 首页 > 知识库问答 >
问题:

使用预签名URL通过cURL将文件上载到S3

纪鸿禧
2023-03-14

这里是我的node.js预签名URL的生成

var AWS = require('aws-sdk');

const s3 = new AWS.S3({

accessKeyId: 'aaa',
secretAccessKey: 'bbb+oeyjn8zGANuDyCIY',
region: 'ap-southeast-2'
});

const params = {
Bucket: 'ss-files-dev',
Key: 'dansero.jpg'  
};

});

s3.getSignedUrl('putObject', params, function(err, urlsign) {
if (err) console.log(err);
 console.log(urlsign);
});

那么我在URL生成或卷曲方面的问题在哪里呢?谢谢

共有1个答案

奚瑾瑜
2023-03-14

我看不见要求签名的部分。确保获得put对象的签名URL。它是我的脚本中的工作代码:

 s3.getSignedUrl('putObject', params, function(err, urlsign) {
            if (err) console.log(err);
            var output = {
                url: urlsign
            };
            cb(null, output);
        });

尝试通过简单的put请求将对象放入桶中,如下所示:

                        var req = http.request({
                            hostname: 's3.amazonaws.com',
                            port: 80,
                            path:{YOURPRESIGNEDURL}.replace('https://s3.amazonaws.com', ''),
                            method: 'PUT',
                        }, function(res) {

最后,确定以下几件事:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt14546345345",
            "Effect": "Allow",
            "Action": [
                "s3:Put*"
            ],
            "Resource": [
                "arn:aws:s3:::myBucket/*"
            ]
        }
    ]
}
 类似资料:
  • 我正在尝试使用预先签名的URL将文件上传到Amazon的S3。我从生成URL的服务器获取URL https://com-example-mysite.s3-us-east-1.amazonaws.com/userFolder/ImageName?X-Amz安全令牌=xxfoox///xxbarxx= 不幸的是,当我将其传递给Refught2时,它会修改试图将其转换为URL的字符串。我设置了,它解决

  • 我正在开发一个特性,使用Angular/预签名url和API Gateway/lambda生成预签名url将文件上传到S3。 我的工作流描述如下: 从模板中获取选定文件 请求我的api(网关/lambda)使用文件名生成预签名的URL。 const body={filename:this.selectedfile.name}const preSignedUrl=await this.http.po

  • 问题内容: 我正在尝试使用预签名的URL将文件上传到Amazon的S3。我从生成URL的服务器获取URL,并将其作为JSON对象的一部分发送给我。我将URL作为字符串获取,如下所示: https://com-example-mysite.s3-us- east-1.amazonaws.com/userFolder/ImageName?X-Amz-Security- Token=xxfooxx%2F

  • 我正在尝试使用邮差上传一个文件。我已经通过点击“body”(在postman中)->二进制->选择文件附加了文件。我使用S3上载预签名的URL。在url中,文件的名称与我在Postman中选择的文件的名称完全相同。运行请求时,我得到一个错误: 但是,通过导出postman请求(通过单击“Code”)来获得curl命令,我得到了: 并添加一个用于上载文件的附加选项:

  • 我尝试使用签名URL将文件上传到我的谷歌云存储。 我已经使用gsutil在我的bucket上设置了CORS参数 浏览器向Django后端发送ajax请求以获取签名URL Django后端向GCS发出请求,以便创建签名URL 签名的url将发送回浏览器。 我尝试在Ajax中使用此签名url将视频文件(内容类型=“video/mp4”)上载到GCS 对GCS返回状态代码200的请求 最后但并非最不重要

  • 我正试图上传一个媒体文件(图片,任何扩展名jpg/png/jpeg或视频)到aws s3桶,从邮递员我创建了我的预签名url在我的后端如下 这成功地生成了一个url,但我似乎无法使用postman来测试它,这是我如何在postman中调整请求的截图 我所尝试的: 在上面的代码中,我尝试将签名版本v4添加到params中,但它给了我一个错误,说出了意外的关键字。我甚至尝试将其添加到aws配置和s3中