ColdStack Docs
  • Introduction
  • ColdStack FAQ
  • Binance Smart Chain Bridge
    • Release
    • Customer Support
    • FAQ
    • Step-by-Step Guide
  • Concepts
    • Bucket versioning
    • Logging actions with a bucket
  • Tools
    • Supported tools
      • CyberDuck S3 Client
      • S3 Browser
      • AWS CLI Console client
      • SDKs for different languages
        • JavaScript SDK
        • Using extended API with JavaScript
        • AWS SDK for Java
        • Python SDK (boto)
  • S3 Compatible API
    • How to use the API
    • Signing Requests
    • API Reference
      • Bucket
        • HeadBucket
        • ListObjects/ListObjectsV2
        • PutBucketVersioning
        • PutBucketLogging
        • RenameBucket
        • GetBucketLocation
        • ListBuckets
      • Object
        • PutObject
        • GetObject
        • HeadObject
        • RenameObject
        • PutObjectAcl
      • Multipart upload
        • General multipart upload order
        • CreateMultipartUpload
        • UploadPart
        • CompleteMultipartUpload
        • ListMultipartUploads
      • Analytics
        • GetStatistics
        • GetBandwidthAnalytics
        • GetStorageAnalytics
      • Common request headers
      • Common response headers
      • Responses
Powered by GitBook
On this page
  • List buckets
  • List objects
  • Get files metadata
  • Edit objects metadata
  • Make object private or public
  • Delete an object

Was this helpful?

  1. Tools
  2. Supported tools
  3. SDKs for different languages

JavaScript SDK

List buckets

await s3.listBuckets().promise();

List objects

List objects in root folder

await s3.listObjectsV2({
    Bucket: 'BUCKET',
    Delimeter: '/',
}).promise();

List objects in the folder

await s3.listObjectsV2({
    Bucket: 'BUCKET',
    Delimeter: '/',
    Prefix: 'my-folder'
}).promise();

Get files metadata

const result = await s3.headObject({
    Bucket: 'BUCKET',
    Key: 'folder/file-name.txt',
}).promise();

/*
{
    Metadata: {key: 'value'},
    ContentLength: 123,
    ETag: '...',
    ...
}
*/

Edit objects metadata

Note that you can not change values of these metadatas: file-hash, storage,location. When you set MetadataDirective: 'REPLACE' any existing metadatas will be overridden. So if you want to edit only some of metadatas then include existing metadatas too.

await s3.copyObject({
  Bucket: 'BUCKET',
  Key: 'file.txt',
  CopySource: 'BUCKET/file.txt',
  Metadata: {
    'key': 'value',
    'key2': 'value2'
  },
  MetadataDirective: 'REPLACE'
}).promise()

Make object private or public

await s3.putObjectAcl({
  Bucket: 'BUCKET',
  Key: 'folder/file-name.txt',
  ACL: 'public-read',
}).promise()

await s3.putObjectAcl({
  Bucket: 'BUCKET',
  Key: 'folder/file-name.txt',
  ACL: 'private'
}).promise()

Delete an object

await s3.deleteObject({
  Bucket: 'BUCKET',
  Key: 'folder/file-name.txt',
}).promise();

PreviousSDKs for different languagesNextUsing extended API with JavaScript

Last updated 3 years ago

Was this helpful?