Never Play Metal

    mss-sdk

    2.0.0 • Public • Published

    mss-sdk-js

    美团云存储(MSS) SDK for Node.js

    Installation

    npm install mss-sdk
    

    Usage

    初始化MSS

    var MSS = require('mss-sdk');

    配置

    方法1:
     
    // 参考sample/config1.js
     
    var config = new MSS.Config({
        accessKeyId: '你的accessKey', 
        secretAccessKey: '你的secretKey'
    });
     
    //全局生效:
    MSS.config = config;
    方法2:

    创建一个json文件config.json:

     
    {
        "accessKeyId": "你的accessKey", 
        "secretAccessKey": "你的secretKey"
    }

    加载config.json:

     
    // 参考sample/config2.js
     
    //全局生效:
    MSS.config.loadFromPath('./config.json');
    方法3:
     
    // 参考sample/config3.js
     
    var config = new MSS.Config({
        accessKeyId: '你的accessKey', 
        secretAccessKey: '你的secretKey'
    });
     
    //实例化:
    var s3 = new MSS.S3();
    //当前实例生效:
    s3.config = config;
    方法4:
     
    // 参考sample/config4.js
     
    //实例化,当前实例生效:
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });

    实例化

    示例1:
     
    var s3 = new MSS.S3();
    示例2:
     
    var mybucket = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
    示例3:
     
    // 参考sample/inst3.js
     
    var mybucket = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey',
      params:{
        Bucket: 'mybucket'
      }
    });
    示例4:
     
    // 参考sample/inst4.js
     
    var mykey = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey',
      params:{
        Bucket: 'mybucket',
        Key: 'myObject'
      }
    });

    调用

    创建一个bucket并上传一个文件:
     
    // 参考sample/create_bucket.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey',
      params:{
        Bucket: 'myBucket'
      }
    });
     
    s3.createBucket(function() {
      var data = {Key: 'Hello', Body: 'Word!'};
      s3.putObject(data, function(err, data) {
        if (err) {
          console.log("Error uploading data: ", err);
        } else {
          console.log("Successfully uploaded data to %s/Hello", 'myBucket');
        }
      });
    });
    列出所有bucket:
     
    // 参考sample/list_buckets.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    s3.listBuckets(function(err, data) {
        if (err)
            console.log(err, err.stack);
        else
            console.log(data);
    });
    列出bucket中的文件:
     
    // 参考sample/list_objects.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var params = {
      Bucket: 'myBucket',     //required
      Delimiter: '/',         //用'/'折叠伪子目录
      Marker: '',             //分页标签
      MaxKeys: 100,           //最大成员数
      Prefix: ''              //按前缀查询
    };
     
    s3.listObjects(params, function(err, data) {
      if (err)
        console.log(err, err.stack);
      else
        console.log(data);
    });
    下载文件示例1:
     
    // 参考sample/download1.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var params = {
      Bucket: 'myBucket',
      Key: 'myObject'};
    var file = require('fs').createWriteStream('./download/file1');
    s3.getObject(params).createReadStream().pipe(file);
    下载文件示例2:
     
    // 参考sample/download2.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var params = {
      Bucket: 'myBucket',
      Key: 'myObject'};
    var file = require('fs').createWriteStream('./download/file2');
     
    s3.getObject(params).on('httpData', function(chunk) {
        file.write(chunk); 
    }).on('httpDone', function() {
        file.end();
    }).on('httpDownloadProgress', function(progress) {
        console.log(progress);
    }).on('error', function(error) {
        console.log(error);
    }).on('success', function() {
        console.log('success');
    }).on('httpHeaders', function(statusCode, headers) {
        console.log('statusCode: ' + statusCode + "\n", headers);
    }).send();
    上传文件示例1:
     
    // 参考sample/upload1.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var file = require('fs').createReadStream('./upload/file');
     
    var params = {
      Bucket: 'myBucket',
      Key: 'upload/file1',
      Body: file
    };
     
    s3.putObject(params).on('httpHeaders', function(statusCode, headers) {
      console.log(headers);
    }).on('httpUploadProgress', function(progress) {
      console.log(progress);
    }).on('error', function(error) {
      console.log(error);
    }).on('success', function() {
      console.log('success');
    }).send();
    上传文件示例2:
     
    // 参考sample/upload2.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var fileBuffer = require('fs').readFileSync('./upload/file');
     
    s3.putObject({
      Bucket: 'myBucket',
      Key: 'upload/file2',
      Body: fileBuffer
    }, function(error, response) {
      if (error) {
        console.log(error);
      } else {
        console.log('success');
      }
    });
    上传文件示例3:
     
    // 参考sample/upload3.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey',
      params:{
        Bucket: 'myBucket'
      }
    });
     
    var data = {Key: 'Hello', Body: 'World!'};
    s3.putObject(data, function(err, data) {
      if (err) {
        console.log("Error uploading data: ", err);
      } else {
        console.log("Successfully uploaded data to %s/Hello", 'myBucket');
      }
    });
    获取bucket的acl信息:
     
    // 参考sample/get_acl.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey',
      params:{
        Bucket: 'myBucket'
      }
    });
     
    s3bucket.getBucketAcl(function(err, data) {
        if (err) {
            console.log(err); // an error occurred
        } else {
            console.log(data); // successful response
        }
    });
    设置bucket的acl信息:
     
    // 参考sample/put_acl.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var params = {
      Bucket: 'myBucket',
      ACL: 'private'
    };
     
    s3.putBucketAcl(params, function(err, data) {
      if (err) {
        console.log(err);
      } else {
        console.log("set private success");
        params["ACL"] = 'public-read'
        s3.putBucketAcl(params, function(err, data) {
          if (err) {
            console.log(err);
          } else {
            console.log("set public-read success");
          }
        });
      }
    });
    删除一个文件:
     
    // 参考sample/delete_object.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var params = {
      Bucket: 'myBucket',
      Key: 'myObject'
    };
     
    s3.deleteObject(params, function(err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log("success");
        }
    });
    删除一个bucket:
     
    // 参考sample/delete_bucket.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    var params = {Bucket: 'myBucket'};
     
    s3.deleteBucket(params, function(err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log("success");
        }
    });
    获取一个带有签名的用于下载的url:
     
    // 参考sample/get_presign_url.js
     
    var s3 = new MSS.S3({
      accessKeyId: '你的accessKey',
      secretAccessKey: '你的secretKey'
    });
     
    // This URL will expire in one minute (60 seconds)
    var params = {
      Bucket: 'myBucket',
      Key: 'myObject',
      Expires: 60
    };
     
    var url = s3.getSignedUrl('getObject', params);
    console.log("The URL to GET is [%s]", url);
     
    var url = s3.getSignedUrl('headObject', params);
    console.log("The URL to HEAD is [%s]", url);
    分片上传:
     
    // 代码较长请参考sample/multipart_upload.js

    Install

    npm i mss-sdk

    DownloadsWeekly Downloads

    10

    Version

    2.0.0

    License

    Apache 2.0

    Last publish

    Collaborators

    • meituan