如果您需要管理OSS存储空间、上传下载文件、管理数据、进行图片处理等,可以先安装OSS Node.js SDK。本文为您介绍如何安装和使用OSS Node.js SDK。
前提条件
已开通阿里云对象存储OSS服务。
已创建RAM用户的AccessKey ID和AccessKey Secret。
由于云账号AccessKey拥有所有API的访问权限,建议使用RAM用户的AccessKey。如果部署在服务端,请使用RAM或STS的方式进行API访问或日常运维管控操作;如果部署在客户端,请使用STS方式进行API访问。详情请参见访问控制。
背景信息
OSS Node.js SDK基于Node.js环境构建。
目前官网文档中的demo基于SDK 6.X,如果SDK版本低于6.X,请参见5.X开发文档,如需升级至6.X,请参见升级详情。
安装
OSS支持8.0.0及以上的Node.js版本。如果需要在Node.js低于8.0.0的环境中使用,请使用ali-oss 4.x版本。
使用npm安装SDK开发包,安装命令为npm install ali-oss --save。
使用方式
Node.js SDK支持基于Promise
的异步编程。您可以使用async/await
语法,或是使用then/catch
语法来处理Promise
对象。
async/await
通过async
和await
关键字,可以编写出类似同步代码的结构,它实际上是在Promise
对象上操作,使得异步流程更加清晰。使用async/await
上传文件和下载文件的代码示例如下:
const OSS = require('ali-oss');
// 初始化OSS客户端。请将以下参数替换为您自己的配置信息。
const client = new OSS({
region: 'yourregion', // 示例:'oss-cn-hangzhou',填写Bucket所在地域。
accessKeyId: process.env.OSS_ACCESS_KEY_ID, // 确保已设置环境变量OSS_ACCESS_KEY_ID。
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, // 确保已设置环境变量OSS_ACCESS_KEY_SECRET。
bucket: 'yourbucketname', // 示例:'my-bucket-name',填写存储空间名称。
});
async function uploadAndDownloadFile() {
try {
// 上传文件到OSS,'object'是OSS中的文件名,'localfile'是本地文件的路径。
const uploadResult = await client.put('object', 'localfile');
console.log('上传成功:', uploadResult);
// 从OSS下载文件以验证上传成功。
const getResult = await client.get('object');
console.log('获取文件成功:', getResult);
} catch (error) {
console.error('发生错误:', error);
// 在此处添加错误处理逻辑。
}
}
uploadAndDownloadFile();
then/catch
类似Callback的方式,通过Promise
对象的then
方法来处理异步操作成功的结果,以及使用catch
方法来处理可能出现的错误。使用then/catch
上传文件和下载文件的代码示例如下:
const OSS = require('ali-oss');
// 初始化OSS客户端。请将以下参数替换为您自己的配置信息。
const client = new OSS({
region: 'yourregion', // 示例:'oss-cn-hangzhou',填写Bucket所在地域。
accessKeyId: process.env.OSS_ACCESS_KEY_ID, // 确保已设置环境变量OSS_ACCESS_KEY_ID。
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, // 确保已设置环境变量OSS_ACCESS_KEY_SECRET。
bucket: 'yourbucketname', // 示例:'my-bucket-name',填写存储空间名称。
});
// 使用OSS的put方法上传文件,然后链式调用then处理结果或捕获错误。
client.put('object', 'localfile')
.then((uploadResult) => {
console.log('上传成功:', uploadResult);
// 继续下载文件以验证上传成功。
return client.get('object');
})
.then((getResult) => {
console.log('获取文件成功:', getResult);
})
.catch((error) => {
console.error('发生错误:', error);
// 在此处添加错误处理逻辑。
});
文档内容是否对您有帮助?