Charlie Fish
Charlie Fish

Reputation: 20566

How to getObject from S3 protocol url using AWS SDK JS v3?

I have a URL that looks like: s3://mybucket/data.txt. I'm trying to retrieve that item using the AWS SDK JS v3 library (@aws-sdk/client-s3).

When using the getObject command, it requires a Bucket and Key.

How can I pass in the S3 protocol URL into the S3 client to get the object based on that URL?

Upvotes: 1

Views: 1380

Answers (1)

Anon Coward
Anon Coward

Reputation: 10832

You can parse the URI to get the bucket name and key name out of it:

import url from 'url';
var s3uri = new URL('s3://some-bucket-name/path/to/object.dat');
var bucket = s3uri.hostname;
// Ignore the first slash, it's not part of the key name
var key = s3uri.pathname.substr(1);

console.log("Bucket: " + bucket + " / Key: " + key);
// Bucket: some-bucket-name / Key: path/to/object.dat

Upvotes: 4

Related Questions