How to use JavaScript aws-sdk for Scaleway S3 Object Storage
Hello,
Few month ago I was showing up how to put an object into Scaleway Object Storage. At that time it was the second time I was playing with their solution, and since I was using a very small part of there S3 based API, I did it the easy way with aws4 signing method and a simple request. However you may want to do more with Scaleway S3 Object Storage, I'll show you how easily you'll be able to set up an external provider as a config and use latest aws-sdk with it, and then unleash the full potential of a S3 based Object Storage Solution.
What are the API currently supported
What's being cool with Scaleway S3 Object Storage is that they based their Object Storage solution on a now called "a standard" S3, which means whether you deal with AWS or Scaleway you'll be able to use the exact same SDK and programmatic logic. You'll be even able to use a hybrid solution if you need it. Scaleway teams are working hard to support all the feature, but you need to know that the vast majority are supported but not all of them.
You can check this out on there S3 Object Storage API development status page:
How to use JavaScript aws-sdk
- Setup your JavaScript/Node.js project
- Install aws-sdk with
yarn add aws-sdk
ornpm install aws-sdk
- Config your AWS instance
const config = require('./config');
const AWS = require("aws-sdk");
const awsConfig = new AWS.Config({
accessKeyId: config.accessKeyId,
secretAccessKey: config.secretAccessKey,
region: config.region,
s3BucketEndpoint: true,
endpoint: config.endpoint
});
const s3 = new AWS.S3(awsConfig);
Where you have a config.json
file alongside with your credentials or provide them with and .env
file or the way you want
{
"accessKeyId": "ACCES_KEY_ID",
"secretAccessKey": "SECRET_ACCESS_KEY",
"region": "REGION",
"bucketName": "BUCKET_NAME",
"endpoint": "BUCKET_ENDPOINT_URL"
}
While doing this you'll be able to use the following aws-sdk functions
- s3.putObject
- s3.deleteObject
- s3.uploadObject
And so on ..
Full documentation S3 aws-sdk: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html
NPM aws-sdk:
That's sit for today, happy coding, enjoy 🎉