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();
Copy link
On this page
List buckets
List objects
Get files metadata
Edit objects metadata
Make object private or public
Delete an object