安安静静是女神
安安静静是女神
  • 发布:2021-01-04 13:54
  • 更新:2023-08-02 16:29
  • 阅读:2220

【uni-app】 uni.uploadFile 上传文件 至OSS后 在响应头里返回版本信息 如何拿到响应头里的数据

分类:uni-app

RT
【uni-app】 uni.uploadFile 上传文件 至OSS后 在响应头里返回版本信息 如何拿到响应头里的数据
在返回的结果里只有提示上传成功 data为空

2021-01-04 13:54 负责人:无 分享
已邀请:
安安静静是女神

安安静静是女神 (作者)

const policy = _this.getPolicyBase64(6000)  
const signature = _this.getSignature(policy); //获取签名  
uni.uploadFile({  
					url: _this.uploadConf.other.host, //oss上传地址  
					filePath: filePath,  
					name: 'file',  
					formData: {  
						'key': fileName,   
						'policy': policy,  
						'x-oss-security-token': _this.uploadConf.config.stsToken, //后台返回的token  
						'OSSAccessKeyId': _this.uploadConf.config.accessKeyId,//后台返回的accessKeyId  
						'Signature': signature,  
						'success_action_status': '200'  
					},  
					success: (uploadFileRes) => {  
                                               console.log(uploadFileRes)  
					},  
					complete: (err) => {  
						console.log(err)  
					}  
				})  
  
getPolicyBase64(timeout) {  
				const FILE_SIZE = 100 * 1024 * 1024; // 5MB  
				let date = new Date();  
				date.setHours(date.getHours() + timeout);  
				let srcT = date.toISOString();  
				const policyText = {  
					"expiration": srcT, //设置该Policy的失效时间,超过这个失效时间之后,就没有办法通过这个policy上传文件了   
					"conditions": [{  
							"bucket": this.uploadConf.config.bucket  //oss Bucket    
						},  
						["content-length-range", 0, FILE_SIZE] // 设置上传文件的大小限制,5mb  
					]  
				};  
				const base64 = require('../../common/ossutil/base64.js');  
				const policyBase64 = base64.encode(JSON.stringify(policyText));  
				return policyBase64;  
			},  
getSignature(policyBase64) {  
				let _this = this;  
				require('../../common/ossutil/hmac.js');  
				require('../../common/ossutil/sha1.js');  
				const Crypto = require('../../common/ossutil/crypto.js');  
				const accesskey = _this.uploadConf.config.accessKeySecret;  
				const bytes = Crypto.HMAC(Crypto.SHA1, policyBase64, accesskey, {  
					asBytes: true  
				});  
				const signature = Crypto.util.bytesToBase64(bytes);  
				return signature;  
			},

hmac.js sha1.js crypto.js 这三个自己找一下

v***@yeah.net

v***@yeah.net

你好,请问你是怎么上传到oss里面的?能给贴部分代码吗?

2***@qq.com

2***@qq.com

请问如何获取响应头有方法了么?

9***@qq.com

9***@qq.com

不用拿,路径就是自己设置的_this.uploadConf.other.host+fileName

前端JASON

前端JASON - 接单uniapp项目&插件/联系front_jason/主页daxiong.site

要回复问题请先登录注册