VUE 使用亚马逊(AWS)上传文件,及跨域配置的问题

1.关于获取accessKeyId,secretAccessKey可参考AWS的S3服务如何获取Access key ID和Secret access key - 程序员大本营

2.设置上传跨域的问题

找到权限的配置,进入后拉倒底部,设置CORS设置可参考官网文档CORS configuration - Amazon Simple Storage Service设置,我此处设置的是

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
             "允许跨域的域名" //如开发环境http://localhost:9527
        ],
        "ExposeHeaders": []
    },
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "允许跨域的域名" //如开发环境http://localhost:9527
        ],
        "ExposeHeaders": []
    },
    {
        "AllowedHeaders": [],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]

进入正题,上传中的前奏我就不列了,根据自己的需求去编写,我使用的vue+elemnetUI,获取文件流后直接提交亚马逊

 

 // 生成的文件名称
      let suffix=".png";
      const objName = getFileNameUUID() + suffix
    
      
      let accessKeyId = "AKIA...."
      let secretAccessKey ="ufsSN..."

      let s3 = new AWS.S3({
        'apiVersion' : '2006-03-01',//版本
        'accessKeyId' : accessKeyId,//accessKeyId
        'secretAccessKey' : secretAccessKey,//secretAccessKey
        'sessionToken' : ""
      });
      var date=new Date;
      var year = date.getFullYear()
      var month = date.getMonth() + 1
      let params = {
        Bucket: 'virtualframer', /* 储存桶名称 */
        Key: `frame/originalImage/${year}/${month}/${objName}`, /* 储存地址及文件名 */
        Body: option.file//文件流
      };
      s3.putObject(params, (err, data) =>{
        if (err) {
          console.log('失败');
          console.log('失败',err) 
        } else {
          // successful response
          console.log('成功');
        }

      });

运行~~~~~~~~

 

AWS上已经可以看到刚刚上传的文件 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值