//阿里云服务器的获取 后天提供的秘钥获取请求 第一步
export const getoss = () => {
return inter({
url: "/ossurl" //后台返回的oss地址
});
};
// 上传图片到阿里云 图片
这是和之前暴露出来的方法,进行图片上传 第二步引入
//四个参数,文件内容,file[0] 原生 oss_msg值后台回去的到路径。这要另外发请求获取 ,name指的是传入到阿里云服务器的存放位置,也是后台给,最后一个回调函数的参数是成功的后的url地址
export const uploadPic = (file, oss_msg, name, fun) => {
//封装的方法 直接调用
return aliyun_oss({
type: "upload",
file: file, //图片
// path: oss_msg.repair,
path: name,
oss_msg: oss_msg,
success: function(data, img_url) {
fun(img_url);
},
error: function(err) {
alert("上传图片失败");
}
});
};
这里在使用uploadPic的时候,第三个参数,函数的参数就是img_url
下面单独封装的工具 在请求内,将该方法暴露给APi接口中,需要用到该方法处理文件内容
// 上传图片到OSS工具
export const aliyun_oss = data => {
// 上传
if (data.type == "upload") {
// 图片名字 当前时间戳+四位随机字符串
var timestamp = new Date().getTime();
var img_name = timestamp + randomString(4);
// 图片格式
var img_extension = data.file.name.split(".")[1];
// 图片路径和名字
var store_as = data.path + img_name + "." + img_extension;
var client = new OSS.Wrapper({
region: data.oss_msg.path,
accessKeyId: data.oss_msg.accessKeyId,
accessKeySecret: data.oss_msg.accessKeySecret,
bucket: data.oss_msg.bucketName,
endpoint: data.oss_msg.endpoint
});
client.multipartUpload(store_as, data.file)
.then(function(result) {
var u = navigator.userAgent,
app = navigator.appVersion;
var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1; //g
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isAndroid) {
//这个是安卓操作系统
return data.success(result, result.res.requestUrls[0].split("?")[0]);
} else if (isIOS) {
//这个是ios操作系统
return data.success(result, result.res.requestUrls[0].split("?")[0]);
} else {
return data.success(result, result.url);
}
})
.catch(function(err) {
return data.error(err);
});
// 删除
} else if (data.type == "delete") {
// alert(data.path);
if (data.path != null && data.path != undefined) {
// 删除之前的图片
var client = new OSS.Wrapper({
region: data.oss_msg.path,
accessKeyId: data.oss_msg.accessKeyId,
accessKeySecret: data.oss_msg.accessKeySecret,
bucket: data.oss_msg.bucketName,
endpoint: data.oss_msg.endpoint
});
var key = data.path.split(".com")[1];
client.delete(key);
}
}
// 随机字符串
function randomString(len, charSet) {
charSet =
charSet ||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var randomString = "";
for (var i = 0; i < len; i++) {
var randomPoz = Math.floor(Math.random() * charSet.length);
randomString += charSet.substring(randomPoz, randomPoz + 1);
}
return randomString;
}
};