🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

swift

Package Overview
Dependencies
Maintainers
2
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

swift

Openstack swift APIs

2.8.0
latest
Source
npm
Version published
Weekly downloads
302
-48.55%
Maintainers
2
Weekly downloads
 
Created
Source

Openstack swift client API with ES7 async/await design.

Build Status NPM Version Coverage Status License Code style

Installation

$ npm install swift

API/services (auth3)

Auth3 API will login to your openstack and use a X-Auth-Token in all operations. Make sure to renew (setInterval) the auth token periodicaly.

credentials

"use strict";

module.exports = {
    authUrl : "https://auth.cloud.ovh.net/v3", // default
    username : "OpenstackUsername", // required
    password : "OpenstackPassword", // required
    tenantId : "OpenstackProjectId", // one of tenantId or tenantName is required
    tenantName : "OpenstackProjectName", // one of tenantId or tenantName is required
    region: "WAW", // default "GRA3"
};

object-store

"use strict";

const fs      = require('fs');
const Context = require('swift/context');
const storage = require('swift/storage');

const pipe    = require('nyks/stream/pipe');
const creds   = require('./credentials');



class foo {
  async run(){
    // init token

    let container = 'mediaprivate';

    var ctx = await Context.build(creds);

    var files = await storage.toggleMode(ctx, container, ".r:*,.rlistings");
    var headers = await storage.showContainer(ctx, container);


    var remote = await storage.putFile(ctx, 'boucs.jpg', container, 'bouc.jpg');
    var local = fs.createWriteStream('tmp.jpg');

    var remote = storage.download(ctx, container, 'bouc.jpg');

    await pipe(remote, local);

    var remote = await storage.deleteFile(ctx, container, 'bouc.jpg');

    var files = await storage.getFileList(ctx, container);
    console.log({files, remote});
  }
}


module.exports = foo;

API/services (meta-temp-url-key)

Using a container meta-temp key, you can upload, retrieve or delete specific files in your container. On a CAS designed container, this should be considered as a best practice against a full container access.

object-store

"use strict";

const fs      = require('fs');
const Context = require('swift/context');
const storage = require('swift/storage');

const pipe    = require('nyks/stream/pipe');
const creds   = {
 "containers" : {

    "mediaprivate" : {
        "endpoint"     : "https://someopenstackswifthost/v1/AUTH_PROJECTID/mediaprivate",
        "temp-url-key" : "somesecret",
    }
 }

};


class foo {
  async run(){

    let container = 'mediaprivate';


    // does not init token, as no username is provided
    var ctx = await Context.build(creds);

    //please note that container level API won't work
    //var files = await storage.toggleMode(ctx, container, ".r:*,.rlistings");
    //var headers = await storage.showContainer(ctx, container);


    var remote = await storage.putFile(ctx, 'boucs.jpg', container, 'bouc.jpg');
    var local = fs.createWriteStream('tmp.jpg');

      //download through tempURL
    var remote = storage.download(ctx, container, 'bouc.jpg');

    await pipe(remote, local);

    var remote = await storage.deleteFile(ctx, container, 'bouc.jpg');

    var files = await storage.getFileList(ctx, container);
    console.log({files, remote});
  }
}


module.exports = foo;

Credits

  • 131

Keywords

swift

FAQs

Package last updated on 15 Sep 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts