simple-do-spaces

    0.9.0 • Public • Published

    Simple Digital Ocean Spaces Client

    Build Status dependencies Status devDependencies Status License: MIT

    NPM

    Usage

    Credentials setup

    You can set the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_KEY as default credentials for the S3 SDK which is also used by Digital Ocean Spaces API.

    Create client for Digital Ocean Spaces API

    import SpacesClient from 'simples-do-spaces';
     
    const client = new SpacesClient(
      'sfo2.digitaloceanspaces.com', // Required, Digital Ocean Spaces Endpoint
      'bucketName', // Required. Bucket name
      'accessKeyId', // Optional. Access key, can be provided via env var AWS_ACCESS_KEY_ID
      'secretAccessKey' // Optional. Access key secret, can be env var AWS_SECRET_ACCESS_KEY
      'digitalOceanAPIToken' // Optional. Digital Ocean API Token, used to purge the cdn cache
      'cdnEndpointId' // Optional. CDN's Endpoint Id, used to purge the cdn cache,
                         // if not provided will be auto-extracted from bucketName.
    );
     

    All methods returns a Promise which resolves to the values described below.

    Upload file

    client.uploadFile(uploadFilePath, destinationPath, permission);
    • uploadFilePath : File path in file system
    • destinationPath : Path to save in DO Spaces
    • permission : Permission of the file, default is private, can also be public-read.
    • options : Options object to be sent to S3 SDK
      • exponentialBackoff : Use exponential backoff if the upload failed
      • purgeCache : Purge the cache from CDN related to this new file

    Return file URL in DO Spaces CDN

    List files

    client.listPathFiles(path, options = {});
    • path : Path in DO Spaces to list
    • options : Options object
      • sortByDate : Sort files by LastModified date, can be 'ASC' (default) or 'DESC'
      • pathOnly : If true it will not return the complete URL just the path in DO Spaces

    Return array of objects with the 'url' and 'lastModified' properties

    [ { url: 'file url', lastModified: Date }, ... ]

    Delete one file

    client.deleteFile(path);
    • path : Relative path to one file in DO spaces to delete it

    Delete multiple files

    client.deletePaths(paths);
    • paths : Array of relative paths in DO spaces to delete

    Copy file within DO Spaces

    client.copyFile(sourcePath, destinationPath);

    Download file

    client.downloadFile(filePathToRead, filePathToSave, createDirIfNotExists);
    • filePathToRead : Path in DO Spaces
    • filePathToSave : Path to save in file system
    • createDirIfNotExists : Boolean to create the folder if the it doesn't exists. Default is true

    Get Pre-signed URL for private files

    client.getPresignedURL(path, expires);
    • path : Path for the file to get the pre-signed URL
    • expires : Time to expire the pre-signed URL (in seconds) (defaults to 900 seconds / 15 minutes);

    License

    MIT © Bruno Orlandi

    Install

    npm i simple-do-spaces

    DownloadsWeekly Downloads

    24

    Version

    0.9.0

    License

    MIT

    Unpacked Size

    36.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • brorlandi