【问题标题】:Fetching signed URL from AWS S3 on my Node Server从我的节点服务器上的 AWS S3 获取签名 URL
【发布时间】:2014-07-28 13:24:51
【问题描述】:

已解决:

我想从我的 amazon S3 服务器 获取一个签名 URL。我是 AWS 的新手。我在哪里设置我的 secret-keyaccess_id_key 以便 S3 识别来自我的 服务器 的请求。

var express=require('express');
var app=express();


var AWS = require('aws-sdk')
, s3 = new AWS.S3()
, params = {Bucket: 'my-bucket', Key: 'path/to/key', Expiration: 20}

s3.getSignedUrl('getObject', params, function (err, url) {
console.log('Signed URL: ' + url)
})

app.listen(8000)

【问题讨论】:

    标签: node.js file-upload amazon-web-services amazon-s3 pre-signed-url


    【解决方案1】:

    后来我解决了我的问题。 这很有帮助 http://aws.amazon.com/sdkfornodejs/ 此外,您还可以将您的凭据硬编码为

    var express=require("express");
    var app=express();
    
    var AWS = require('aws-sdk')
    , s3 = new AWS.S3()
    , params = {Bucket:'your-bucket-name on s3', Key: 'key-name-on s3 you want to store under', Expires: 20}
    
    AWS.config.update({accessKeyId: 'Your-Access-Key-Id', secretAccessKey:     
    'Your-secret-key'});
    
    AWS.config.region = 'us-west-2';
    
    
    s3.getSignedUrl('getObject', params, function (err, url) {
    console.log('Signed URL: ' + url);
    });
    
    app.listen(8000);
    

    【讨论】:

    • 知道如何根据每个请求执行此操作吗?我正在尝试为多个存储桶/客户端存储 S3 凭据,并且无法全局设置任何参数。
    【解决方案2】:

    如果您使用多个存储桶,您还可以为每个存储桶设置凭据,您只需将凭据传递给 S3 对象的构造函数,如下所示:

    var AWS = require('aws-sdk');
    var credentials = {
      accessKeyId: AWS_CONSTANTS.S3_KEY,
      secretAccessKey: AWS_CONSTANTS.S3_SECRET,
      region: AWS_CONSTANTS.S3_REGION
    };
    var s3 = new AWS.S3(credentials);
    var params = {Bucket:'bucket-name', Key: 'key-name', Expires: 20};
    s3.getSignedUrl('getObject', params, function (err, url) {
      console.log('Signed URL: ' + url);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 2016-10-21
      • 2018-08-14
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多