JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q22467F
  • License MIT

Read and write to AWS S3 using fetch()

Package Exports

  • scaleway-s3

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (scaleway-s3) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

scaleway-s3

Read and write objects to scaleway S3 using fetch() getPublicUrl | glacierObject | restoreObject | getObject | createFolder | createBucket

Install

$ npm install scaleway-s3

Usage

import scalewayS3 from "scaleway-s3";

var s3 = new scalewayS3({
    accessKey: '<private accessKey>',
    secretKey: '<private secretKey>',
    region: 'fr-par',
    domain: 'scw.cloud'
});

(async function() {
    try {

        let bucket = 'testbucket';
        let key = '/a/test/file.txt';

        let body = 'test file contents';
        let putResponse = await s3.putObject(bucket, key, body)
        console.log(`put status: ${putResponse.status}`)
        console.log(`put response body: '${await putResponse.text()}'`)

        let path = '/?delimiter=/&marker=&prefix=/a/test/';
        let list = await s3.getList({bucket, path});
        console.log(`get status: ${list.status}`)
        console.log(`get response body: '${await list.text()}'`)

        let key = '/a/test/?acl';
        let aclResponse = await s3.getObject(bucket, key);
        console.log(`get status: ${aclResponse.status}`)
        console.log(`get response body: '${await aclResponse.text()}'`)

        let key = '/a/test2/';
        let getResponseFolder = await s3.createFolder(bucket, key);
        console.log(`get status: ${getResponseFolder.status}`)
        console.log(`get response body: '${await getResponseFolder.text()}'`)

        //work for regular Object.(so restore object before!)
        let expiration_time_limit = 86400;
        let PublicUrl = s3.getPublicUrl({bucket, key, expiration_time_limit})
        console.log(`Public Url: ${PublicUrl}`)
        
        let getResponse = await s3.getObject(bucket, key);
        console.log(`get status: ${getResponse.status}`)
        console.log(`get response body: '${await getResponse.text()}'`)

        let putResponse2 = await s3.glacierObject(bucket, key)
        console.log(`put status: ${putResponse2.status}`)
        console.log(`put response body: '${await putResponse2.text()}'`)

        let days = 250;
        let getResponse1 = await s3.restoreObject(bucket, key, days);
        console.log(`get status: ${getResponse1.status}`)
        console.log(`get response body: '${await getResponse1.text()}'`)


        let delResponse = await s3.deleteObject(bucket, key);
        console.log(`del status: ${delResponse.status}`)
        console.log(`del response body: '${await delResponse.text()}'`)

        let region='fr-par';//fr-par nl-ams pl-waw
        let bucketResponse = await s3.createBucket(bucket, region);
        console.log(`create status: ${bucketResponse.status}`)
        console.log(`create response body: '${await bucketResponse.text()}'`)

    }
    catch (ex) {
        console.log(ex)
    }
}());

License

MIT license; see LICENSE.