VUE OSS 下载

触发  ossDownloadFile (objectKey);此函数

-----------------------------------------------------------------------------------------

            // 创建 OSS 客户端对象

            createOssClientTemp () {

                let OSS = require('ali-oss');

                return new Promise((resolve) => {

                let client = new OSS({

                    endpoint:"xxxxxxxxxxxxxx",

                    accessKeyId: 'xxxxxxxxxxxxxx',

                    accessKeySecret: 'xxxxxxxxxxxxxx',

                    bucket: 'xxxxxxxxxxxxxx'

                })

                resolve(client)

                })

            },

        //例如:下载路径如下:http://image-demo.oss-cn-hangzhou.aliyuncs.com/doc1/doc2/example.jpg

                      objectKey 值为:doc1/doc2/example.jpg

                       newName 值为是想给下载文件重命名的新名字

                      type 值为:文件类型

            // OSS 文件下载

            ossDownloadFile (objectKey) {

                this.createOssClientTemp().then( client => {

                let url = client.signatureUrl(objectKey, {

                    response: {

                    'content-disposition': 'attachment; filename="' + newName + '.' + type + '"'

                    },

                    expires: 3600

                })

                console.log(url)

                window.location.href = url

                })

                },

阿里文档:https://help.aliyun.com/document_detail/84843.html?spm=a2c4g.11186623.6.771.3ab45704dCyLJL

### Vue 实现 OSS 图片上传 #### 准备工作 为了实现图片上传至阿里OSS,在Vue项目中需先完成一些准备工作。这包括但不限于安装依赖库`ali-oss`用于与OSS交互,以及在服务端提供接口来获取临时访问凭证(STS Token),以便前端能够安全地执行文件上传操作[^1]。 #### 获取 STS Token 由于直接暴露AccessKey给客户端存在安全隐患,通常做法是由后端通过API请求阿里云服务器获得临时授权信息(即STS Token)。该Token包含了必要的权限设置,允许特定时间内对指定资源的操作。当Vue应用准备发起上传时,会向自己的后端发送请求以取得这些认证数据。 #### 前端代码实现 一旦拥有了有效的STS Token和其他必要参数(如Bucket名称、区域Endpoint等),便可以在Vue组件内部编写逻辑来进行实际的文件传输过程: ```javascript import OSS from &#39;ali-oss&#39;; // 初始化Client实例 const client = new OSS({ region: &#39;<YourRegion>&#39;, accessKeyId: &#39;<YourAccessKeyId>&#39;, // 使用从后端获取到的信息填充此处 accessKeySecret: &#39;<YourAccessKeySecret>&#39;, stsToken: &#39;<YourStsToken>&#39;, bucket: &#39;<YourBucketName>&#39; }); async function uploadImage(file) { try { const result = await client.put(`/${file.name}`, file); console.log(&#39;Upload Success:&#39;, result); return result.url; } catch (error) { console.error(&#39;Error during Upload:&#39;, error.message); } } ``` 在此基础上,如果希望进一步优化用户体验,则可以考虑加入进度条显示等功能;另外对于大尺寸图像来说,还可以引入压缩算法减少体积后再提交给云端存储[^2]。 #### 图片回显机制 为了让用户即时看到已上传成功的照片效果,可在接收到响应URL之后立即将其绑定到页面上的某个DOM节点作为源链接展示出来。例如利用Element UI框架下的表格列定义方式如下所示[^3]: ```html <el-table-column prop="logo" header-align="center" align="center" label="品牌logo地址"> <template slot-scope="scope"> <img :src="scope.row.logo" style="width: 100px; height: 80px"/> </template> </el-table-column> ``` 这样不仅实现了基本的功能需求——将本地选取的照片保存至远程仓库并读取回来预览,同时也提高了界面友好度和互动性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值