AWS SDK Javascript (Node.js)

使用 AWS 官方 Javascript aws-sdk-js

  • 普通接口
#!/usr/bin/env node

const AWS = require('aws-sdk'),
    FS = require('fs'),
    TIMEZONE = require('reset-date-cache');

// fix timezone issue for some ... reasons!
process.env.TZ = 'Asia/Shanghai';
TIMEZONE()

var s3endpoint = 'https://api-s3.qiniu.com',
    s3region = 'cn-east-1',
    s3bucket = '<your-qiniu-bucket>',
    s3access_key_id = '<your-qiniu-access-key-id>',
    s3access_key_secret = '<your-qiniu-access-secret-key>';

// config for qiniu s3 api service globally
AWS.config.update({
    endpoint: s3endpoint,
    region: s3region,
    accessKeyId: s3access_key_id,
    accessKeySecret: s3access_key_secret
});

// init s3 client
var s3 = new AWS.S3({
    s3ForcePathStyle: true
});

// list buckets
s3.listBuckets(function(err, data){
    if (err != null) {
        console.log("Error list buckets: ", err);
        return
    }

    for (var bucket of data["Buckets"]) {
        console.log(bucket);
    }
});

// list objects
s3.listObjects({
    Bucket: s3bucket
}, function(err, data) {
    if (err != null) {
        console.log("Error list objects: ", err);
        return
    }

    for (var object of data["Contents"]) {
        console.log(object);
    }
});

// create object
s3.putObject({
    Bucket: s3bucket,
    Key: "node.js",
    Body: 'console.log("Qiniu!")'
}, function(err, data) {
    if (err != null) {
        console.log("Error put object: ", err);
        return
    }

    console.log(data);
});

// download object
s3.getObject({
    Bucket: s3bucket,
    Key: "node.js"
}, function(err, data) {
    if (err != null) {
        console.log("Error get object: ", err);
        return
    }

    console.log(data);
});
  • 分块上传接口
#!/usr/bin/env node

const AWS = require('aws-sdk'),
    FS = require('fs'),
    TIMEZONE = require('reset-date-cache');

// fix timezone issue for some ... reasons!
process.env.TZ = 'Asia/Shanghai';
TIMEZONE()

var s3endpoint = 'https://api-s3.qiniu.com',
    s3region = 'cn-east-1',
    s3bucket = '<your-qiniu-bucket>',
    s3access_key_id = '<your-qiniu-access-key-id>',
    s3access_key_secret = '<your-qiniu-access-secret-key>';

// config for qiniu s3 api service globally
AWS.config.update({
    endpoint: s3endpoint,
    region: s3region,
    accessKeyId: s3access_key_id,
    accessKeySecret: s3access_key_secret
});

// init s3 client
var s3 = new AWS.S3({
    s3ForcePathStyle: true
});

s3.upload({
    Bucket: s3bucket,
    Key: "node.big",
    Body: FS.createReadStream("/path/to/your/big.file")
}, {
    queueSize: 4,
    partSize: 8<<20 // 8M
}, function(err, data) {
    if (err != null) {
        console.log("Error multipart upload object: ", err);
        return
    }

    console.log(data);
})

results matching ""

    No results matching ""