簡體   English   中英

Amazon S3瀏覽器直接上傳唯一文件名

[英]Amazon S3 browser direct upload unique file name

我正在使用Node.js和Amazon aws sdk簽署上傳請求,因此我可以從Angular應用程序直接上傳。 除了我無法獲得唯一的文件名之外,它的工作原理非常好。 我嘗試創建唯一的存儲桶,但后來我無法使CORS設置起作用。 由於無法在瀏覽器中重命名該文件,這對我來說都是個謎。 有人對此有經驗嗎?

現在,生成的LoopBack.io遠程方法如下所示,在參數中設置“ Key”就可以了。

Project.signS3 = function(filename, cb){
    var aws = require('aws-sdk');

    var AWS_ACCESS_KEY = process.env.AWS_ACCESS_KEY;
    var AWS_SECRET_KEY = process.env.AWS_SECRET_KEY;
    var S3_BUCKET = '...';

    aws.config.update({
        accessKeyId: AWS_ACCESS_KEY, 
        secretAccessKey: AWS_SECRET_KEY, 
        region: 'eu-central-1',
        signatureVersion: 'v4'
    });

    // Figure out a unique filename
    var ext = filename.split('.').pop();
    var random = Math.floor(Math.random() * 900000000000000000);

    filename = random + '.' + ext;

    var s3 = new aws.S3();
    var s3_params = {
        Bucket: S3_BUCKET,
        Key: filename,
        Expires: 60,
        ACL: 'public-read'
    };

    s3.getSignedUrl('putObject', s3_params, function(err, data){

        if(err){
            console.log(err);
        }
        else{
            var return_data = {
                signed_request: data,
                url: 'https://'+S3_BUCKET+'.s3.amazonaws.com/'+filename
            };

            cb(null, return_data);
        }
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM