本文档基于 AWS Node.js SDK 编写。土星云对象存储兼容 AWS S3 接口,兼容接口详情请在 API 参考-API 概览查看
开发前需先安装环境依赖: npm 地址。
为 Node.js 安装 SDK 的首选方法是使用 Node.js 程序包管理器 npm。要执行此操作,请在命令行中键入此内容。
npm install aws-sdk
说明 如果您在安装中遇到如下错误消息:
npm uninstall --save node-uuid
npm install --save uuid
使用 SDK 需要您的运行环境包含 nodejs 以及 npm,nodejs 版本建议 7.0 版本以上。 在安装完成 npm 后,您还需要安装 npm 依赖包,在 SDK 的解压目录执行 npm install。 到 控制台 Access Key 管理 获取您的项目 AccessKeyId 和 AccessKeySecret。
关于本文出现的 AccessKeyId 、 AccessKeySecret 、Bucket 等名称的含义请参考: 产品概述-基本概念
土星云 OSS 兼容绝大多数 AWS S3 API。
在 Node.js 中使用开发工具包时,您使用 require 将开发工具包添加到应用程序。
var AWS = require('aws-sdk');
如果您仅使用土星云 OSS 建议您采用仅引入对象存储服务方式,由此,通过网络传输的代码量以及代码的内存开销都会显著减少。
如下所示是当只包含开发工具包的对象存储部分。
// Import the AWS SDK only for S3
var AWS = require('aws-sdk');
var s3 = new AWS.S3({ apiVersion: '2021-04-22' });
s3.endpoint = 'https://s3.local-north-1.saturncloud.com.cn:6666';
s3.config.update({
accessKeyId: 'your_accessKeyId',
secretAccessKey: 'your_secretAccessKey',
signatureVersion: 'v4',
});
说明 使用 SDK 创建 Bucket 前必须在 OSS 控制台,注册并认证对象存储。 您也可通过控制台创建 Bucket。
var AWS = require('aws-sdk');
// Import the AWS SDK only for S3
var s3 = new AWS.S3({ apiVersion: '2021-04-22' });
s3.endpoint = 'https://s3.local-north-1.saturncloud.com.cn:6666';
s3.config.update({
accessKeyId: 'XXXXXXXXXXXXXXXXXXXXXXXXXX',
secretAccessKey: 'yyyyyyyyyyyyyyyyyyyyyyyyyyy',
signatureVersion: 'v4',
});
// Create Bucket
var newBuket = {
Bucket: 'bucket-one',
};
s3.createBucket(newBuket, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data);
}
});
API 功能 | API 名称 | SDK 接口 |
---|---|---|
列举存储桶 | Get Service | s3.listBuckets() |
列举文件对象 | Get Bucket | s3..listObjects() |
创建存储桶 | Put Bucket | s3..createBucket() |
确认存储桶 | Head Bucket | s3.headBucket() |
删除存储桶 | Delete Bucket | s3.deleteBucket() |
获取存储 ACL | Get Bucket ACL | s3.getBucketAcl() |
设置存储 ACL | Set Bucket ACL | s3.putBucketAcl() |
获取存储位置 | Get Bucket Location | s3.getBucketLocation() |
上传文件对象 | Put Object | s3.putObject() |
下载文件对象 | Get Object | s3.getObject() |
删除文件对象 | Delete Object | s3.deleteObject() |
批量删除文件对象 | Delete Multiple Objects | s3.deleteObjects() |
获取文件元信息 | Head Object | s3.headObject() |