当前位置: 首页 > article >正文

【OSS】 前端如何直接上传到OSS 上返回https链接,如果做到OSS图片资源加密访问

使用阿里云OSS(对象存储服务)进行前端直接上传并返回HTTPS链接,同时实现图片资源的加密访问,可以通过以下步骤实现:

前端直接上传到OSS并返回HTTPS链接

  1. 设置OSS Bucket

    • 确保你的OSS Bucket已创建,并且设置为公共读或私有(根据访问控制需求)。
    • 在Bucket属性中启用HTTPS访问。
  2. 生成上传策略和签名

    • 在后端生成一个上传策略(Policy)和签名(Signature),用于前端直接上传文件。
    • 策略中应包括OSS的Endpoint、Bucket名称、上传路径、过期时间等。
  3. 前端上传代码

    • 使用阿里云OSS SDK(如ali-oss)进行上传。

    • 示例代码(使用JavaScript):

      import OSS from 'ali-oss';const client = new OSS({region: 'your-oss-region', // 例如: 'oss-cn-hangzhou'accessKeyId: 'your-access-key-id', // 建议在后端生成临时凭证accessKeySecret: 'your-access-key-secret', // 建议在后端生成临时凭证bucket: 'your-bucket-name'
      });async function uploadFile(file) {try {const result = await client.put('your-upload-path/' + file.name, file);console.log('File uploaded:', result.url); // 返回HTTPS链接return result.url;} catch (error) {console.error('Upload error:', error);}
      }// 示例调用
      const fileInput = document.getElementById('file-input');
      fileInput.addEventListener('change', (e) => {const file = e.target.files[0];if (file) {uploadFile(file);}
      });
      
    • 注意:出于安全考虑,不建议在前端直接使用永久AccessKey,建议使用后端生成临时凭证(STS Token)。

  4. 获取HTTPS链接

    • 上传成功后,result.url即为文件的HTTPS访问链接。

图片资源加密访问

  1. 使用HTTPS

    • 确保OSS的Endpoint是HTTPS,这样所有上传和访问的链接都是通过HTTPS加密传输的。
  2. Bucket权限控制

    • 设置Bucket为私有,这样只有授权用户才能访问资源。
    • 通过生成预签名URL(Signed URL)来实现临时访问权限。
  3. 生成预签名URL

    • 在后端生成预签名URL,用于临时授权访问私有Bucket中的文件。

    • 示例代码(Node.js):

      const OSS = require('ali-oss');const client = new OSS({region: 'your-oss-region',accessKeyId: 'your-access-key-id',accessKeySecret: 'your-access-key-secret',bucket: 'your-bucket-name'
      });async function generateSignedUrl(fileName, expires) {try {const url = client.signatureUrl(fileName, {expires: expires, // 例如: 3600 表示1小时后过期process: 'image/resize,w_200' // 可选:对图片进行实时处理});console.log('Signed URL:', url);return url;} catch (error) {console.error('Generate signed URL error:', error);}
      }// 示例调用
      generateSignedUrl('your-file-path.jpg', 3600);
      
  4. 前端使用预签名URL

    • 前端从后端获取预签名URL后,可以直接在<img>标签中使用该URL进行图片展示。

    • 示例:

      <img src="signed-url-from-backend" alt="Encrypted Image">
      

通过上述步骤,你可以实现前端直接上传文件到OSS并返回HTTPS链接,同时通过预签名URL实现图片资源的加密访问。

http://www.lryc.cn/news/2392304.html

相关文章:

  • AI智能分析网关V4室内消防逃生通道占用检测算法打造住宅/商业/工业园区等场景应用方案
  • 商城前端监控体系搭建:基于 Sentry + Lighthouse + ELK 的全链路监控实践
  • Kotlin 中的数据类型有隐式转换吗?为什么?
  • 基于 HTTP 的邮件认证深入解读 ngx_mail_auth_http_module
  • 关于无法下载Qt离线安装包的说明
  • Java开发经验——阿里巴巴编码规范实践解析4
  • HTML应用指南:利用GET请求获取全国捞王锅物料理门店位置信息
  • 算法日记32:埃式筛、gcd和lcm、快速幂、乘法逆元
  • 黑马点评-分布式锁Lua脚本
  • P7-大规模语言模型分布式训练与微调框架调研文档
  • 机械师安装ubantu双系统:三、GPT分区安装Ubantu
  • ORM++ 封装实战指南:安全高效的 C++ MySQL 数据库操作
  • kafka学习笔记(三、消费者Consumer使用教程——从指定位置消费)
  • 【后端高阶面经:架构篇】46、分布式架构:如何应对高并发的用户请求
  • 网络编程学习笔记——TCP网络编程
  • Vue+element-ui,实现表格渲染缩略图,鼠标悬浮缩略图放大,点击缩略图播放视频(一)
  • day13 leetcode-hot100-22(链表1)
  • 【Oracle】DQL语言
  • HUAWEI华为MateBook D 14 2021款i5,i7集显非触屏(NBD-WXX9,NbD-WFH9)原装出厂Win10系统
  • 【STIP】安全Transformer推理协议
  • leetcode hot100刷题日记——27.对称二叉树
  • 高考加油(Python+HTML)
  • 贪心算法应用:Ford-Fulkerson最大流问题详解
  • UE5 Niagara 如何让四元数进行旋转
  • 从“黑箱”到透明化:MES如何重构生产执行全流程?
  • 探索Linux互斥:线程安全与资源共享
  • JWT安全:假密钥.【签名随便写实现越权绕过.】
  • Python爬虫实战:抓取百度15天天气预报数据
  • RV1126 + FFPEG多路码流项目
  • NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示