Node.js操作阿里云OSS——跨域设置&上传图片&获取响应图片URL
安装和引入依赖
在终端安装
1. npm i ali-oss --save
2. npm i path --save
后引入const OSS = require('ali-oss') const path = require('path')
跨域设置
想要在node中使用阿里云oss,首先需要进行跨域设置
const client = new OSS({
region: '你的region',
accessKeyId: '你的accessKeyId',
accessKeySecret: '你的AccessKeySecret',
bucket: '你创建的bucket名'
});
找不到accessKeyId和accessKeySecret,请先在
权限管理——Bucket 授权策略——设置——新增授权
里进行新增授权,后获取这两个值
然后
const rules = [{
allowedOrigin: '你的bucket url路径 例如www.test.com',
allowedMethod: 'GET',
allowedHeader: '*',
exposeHeader: 'Content-Length',
maxAgeSeconds: '你喜欢~'
}];
const putResult = await client.putBucketCORS('bucket名', rules);
再console.log(putResult.res); 一下,没报错就证明配置成功啦!!!~~~
上传图片
进行跨域设置之后,就可以进行上传图片啦!!!
async function put() {
try {
const result = await client.put('存在oss的名称,可不带后缀', path.normalize('本地图片所在路径 比如'C:\\user\\ming\1.jpg''));;
console.log(result);
} catch (e) {
console.log(e);
}
}
put()
请注意!!!path.normalize里面路径一定要用双斜杠
执行代码后,发现oss里有新的图片文件,就成功啦!!!
获取文件url
async function getUrl() {
try {
const imgUrl = client.signatureUrl('图片名称', { expires: 600, 'process': 'image/resize,w_300' })
console.log(imgUrl);
ctx.body = {
imgUrl
}
} catch (e) {
console.log(e);
}
}
getUrl()
返回的imgUrl,在浏览器地址栏上输入,图片正确就成功啦!!!!
参考文档
OSS Node.js文档
|