AWS s3+cloudfont+防盗链配置备忘

1,创建s3存储桶 

打开链接 :创建存储桶

输入存储桶名称 其他默认,后面根据需要再配置

上传一个文件,这时候文件还是不能访问的,因为存储桶默认是禁止公开访问的,此处在存储桶的权限中设置

 

编辑配置存储桶策略(注:编辑存储桶策略需要关闭 阻止公有访问)

 

 以上策略做的是s3存储桶的防盗链 策略允许指定的域名下的网站加载s3资源内容,单独访问资源会被阻止

2,配置cloudfont

打开链接 cloudfont 创建分配

 

 

创建分发,选择存储桶其他的默认

打开链接 创建源访问身份

编辑cloudfont源 以使其能够访问到s3数据

 此时可以通过cloudfont域名访问s3资源了 

配置cloudfont备用域名及ssl证书 证书申请在下面两步骤

 

 

 

如果域名是在amazon申请的 可以直接在亚router 53中直接创建记录 然后等待验证

 在域名供应商dns配置中添加域名指向cname记录到cloudfont

 

 

 

 到此,cloudfont分发配置完成,可以通过配置的备用域名访问s3资源了

配置webacl以实现cloudfont防盗链

搜索服务"WAF & Shield" 或打开 链接

配置acl可访问的资源 next 创建rules

 

设置不满足rules的请求都拒绝 

 其他的设置默认就可以了

ok 到此cloudfont防盗链设置完成

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AWS S3 分段上传是一种将文件分成多个部分上传到S3的方式,这样可以提高上传速度和稳定性。在Vue中,我们可以使用AWS SDK for JavaScript来实现S3分段上传。 下面是一个基本的Vue示例,演示如何使用AWS SDK for JavaScript实现S3分段上传。 首先,我们需要安装AWS SDK for JavaScript: ```bash npm install aws-sdk ``` 然后,在Vue组件中,我们可以按如下方式导入AWS SDK: ```javascript import AWS from 'aws-sdk'; ``` 接下来,我们需要初始化AWS SDK,并配置S3: ```javascript AWS.config.update({ accessKeyId: 'YOUR_ACCESS_KEY_ID', secretAccessKey: 'YOUR_SECRET_ACCESS_KEY', region: 'YOUR_REGION' }); const s3 = new AWS.S3({ apiVersion: '2006-03-01', params: { Bucket: 'YOUR_BUCKET_NAME' } }); ``` 现在,我们已经配置好了S3,接下来是分段上传的核心: ```javascript async uploadFile() { const file = this.$refs.fileInput.files[0]; const fileSize = file.size; const chunkSize = 1024 * 1024 * 5; // 5MB per chunk const chunks = Math.ceil(fileSize / chunkSize); const params = { Key: file.name, ContentType: file.type, ACL: 'public-read' }; const uploadId = await s3.createMultipartUpload(params).promise(); const promises = []; let uploadedSize = 0; for (let i = 1; i <= chunks; i++) { const start = (i - 1) * chunkSize; const end = Math.min(i * chunkSize, fileSize); const chunk = file.slice(start, end); const partParams = { Body: chunk, Key: file.name, PartNumber: i, UploadId: uploadId.UploadId }; promises.push(s3.uploadPart(partParams).promise().then(data => { uploadedSize += chunk.size; console.log(`Uploaded ${uploadedSize} bytes`); return { ETag: data.ETag, PartNumber: i }; })); } const parts = await Promise.all(promises); const completeParams = { Key: file.name, MultipartUpload: { Parts: parts }, UploadId: uploadId.UploadId }; await s3.completeMultipartUpload(completeParams).promise(); console.log('Upload complete'); } ``` 这里,我们首先计算出文件的大小和每个块的大小。然后,我们创建一个上传任务,并将文件分成多个块。对于每个块,我们将其上传到S3,并记录上传的总大小。上传完成后,我们将所有块合并为一个文件,完成上传。 最后,我们需要在Vue模板中添加一个文件输入框和一个上传按钮: ```html <template> <div> <input type="file" ref="fileInput"> <button @click="uploadFile">Upload</button> </div> </template> ``` 这就是一个基本的Vue示例,演示如何使用AWS SDK for JavaScript实现S3分段上传。当然,具体的实现方式还要根据自己的需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值