阿里云OSS跨域设置和AccessKeyId、AccessKeySecret

        最新版本中的跨域设置跑到了数据安全里面如图

        然后AccessKeyId、AccessKeySecret的获取在控制台首页下滑处

 如果对您有帮助,希望留下你的三连支持一下

### 解决阿里云 OSS 分片上传时的问题并确保 ETag 正确生成 #### 配置 CORS 规则以支持请求 为了使前端能够顺利地向阿里云 OSS 发起分片上传请求,必须在 OSS 的存储桶上正确配置源资源共享(CORS)规则。这涉及到设置 `Access-Control-Allow-Origin`、`Access-Control-Allow-Methods` `Access-Control-Allow-Headers` 头部信息[^1]。 具体来说: - **Access-Control-Allow-Origin**: 设置为通配符 "*" 或者指定特定名来允许来自哪些站点可以发起请求。 - **Access-Control-Allow-Methods**: 列举出被允许的方法列表,比如 POST, PUT 等方法对于分片上传至关重要。 - **Access-Control-Allow-Headers**: 包含必要的自定义头部字段,特别是当使用 STS Token 进行临时授权认证时所需的头部参数。 此外,还需要特别注意暴露响应中的 `Etag` 字段,因为它是验证各部分数据完整性的重要依据之一。因此应该添加 `Access-Expose-Headers: Etag` 来确保浏览器能接收到此值[^4]。 #### 实现分片上传流程 按照标准的分片上传逻辑执行如下操作: 1. 初始化一个多部分上传任务,并获得唯一的 UploadId; 2. 将大文件分割成多个较小的数据块; 3. 对每一个片段依次调用 PutPart 接口上传至服务器端,每完成一次都会得到相应的 ETag 值作为确认凭证; 4. 当全部片段均已成功提交完毕之后,则需发送 CompleteMultipartUpload 请求告知对象存储服务结束整个过程,并提供之前收集好的各个片段对应的编号及其关联的 ETag 给它以便于后续处理[^2]。 ```javascript // JavaScript 示例代码展示如何通过 SDK 执行上述步骤 const client = new OSS({ region: '<YourRegion>', accessKeyId: 'your-access-key-id', accessKeySecret: 'your-secret-key', stsToken : 'security-token', // 如果适用的话 bucket: 'example-bucket' }); async function uploadFile(file){ const initRes = await client.initMultipartUpload({key: file.name}); let parts = []; for(let i=0; i<file.size/CHUNK_SIZE;i++){ const chunk = file.slice(i*CHUNK_SIZE,(i+1)*CHUNK_SIZE); const res = await client.uploadPart({...initRes, partNumber:i+1,body:chunk}); parts.push({partNumber:i+1, etag:res.res.headers.etag}); } await client.completeMultipartUpload({...initRes,parts}) } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值