--- title: "AWS SDK for Javascript" slug: "storage-storage-8-4" tags: ["Object Storage"] updated: 2026-10-08T06:56:08Z published: 2026-10-08T06:56:08Z canonical: "guide.ncloud-docs.com/storage-storage-8-4" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # AWS SDK for Javascript Available in Classic and VPC ## SDK for S3 API for Javascript This is an example using Object Storage of NAVER Cloud Platform using SDK for Javascript provided by AWS S3. The example is based on AWS Javascript SDK 2.348.0 version. ### Install SDK ``` npm install --save aws-sdk@2.348.0 ``` - AWS Javascript SDK source: [https://github.com/aws/aws-sdk-js](https://github.com/aws/aws-sdk-js) - Related document: [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html) ### Example Note You should enter the registered API authentication key information for the accessKey and secretKey values used in the example. #### Create bucket ``` const AWS = require('aws-sdk'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint, region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; (async () => { await S3.createBucket({ Bucket: bucket_name, CreateBucketConfiguration: {} }).promise() })(); ``` #### View bucket lists ``` const AWS = require('aws-sdk'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); (async () => { let { Buckets } = await S3.listBuckets().promise(); for(let bucket of Buckets) { console.log(bucket.Name); } })(); ``` #### Delete bucket ``` const AWS = require('aws-sdk'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; (async () => { await S3.deleteBucket({ Bucket: bucket_name }).promise(); })(); ``` #### Upload files ``` const AWS = require('aws-sdk'); const fs = require('fs'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; const local_file_path = '/tmp/test.txt'; (async () => { let object_name = 'sample-folder/'; // create folder await S3.putObject({ Bucket: bucket_name, Key: object_name }).promise(); object_name = 'sample-object'; // upload file await S3.putObject({ Bucket: bucket_name, Key: object_name, ACL: 'public-read', // If ACL is deleted, it is not disclosed to public. Body: fs.createReadStream(local_file_path) }).promise(); })(); ``` #### View file lists ``` const AWS = require('aws-sdk'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; const MAX_KEYS = 300; var params = { Bucket: bucket_name, MaxKeys: MAX_KEYS, FetchOwner: true }; (async () => { // List All Objects console.log("List All In The Bucket"); console.log("=========================="); while (true) { let response = await S3.listObjectsV2(params).promise(); console.log(`IsTruncated = ${response.IsTruncated}`); console.log( `ContinuationToken = ${response.ContinuationToken ? response.ContinuationToken: null}` ); console.log( `NextContinuationToken = ${ response.NextContinuationToken ? response.NextContinuationToken: null }` ); console.log(` Object Lists`); for (let content of response.Contents) { console.log( ` Name = ${content.Key}, Size = ${content.Size}, Owner = ${content.Owner.ID}` ); } if (response.IsTruncated) { params.ContinuationToken = response.NextContinuationToken; } else { break; } } // List Top Level Folder And Files params.Delimiter = "/"; console.log("Top Level Folders And Files In The Bucket"); console.log("=========================="); while (true) { let response = await S3.listObjectsV2(params).promise(); console.log(`IsTruncated = ${response.IsTruncated}`); console.log( `ContinuationToken = ${response.ContinuationToken ? response.ContinuationToken: null}` ); console.log( `NextContinuationToken = ${ response.NextContinuationToken ? response.NextContinuationToken: null }` ); console.log(` Folder Lists`); for (let folder of response.CommonPrefixes) { console.log(` Name = ${folder.Prefix}`); } console.log(` File Lists`); for (let content of response.Contents) { console.log( ` Name = ${content.Key}, Size = ${content.Size}, Owner = ${content.Owner.ID}` ); } if (response.IsTruncated) { params.ContinuationToken = response.NextContinuationToken; } else { break; } } })(); ``` #### Download files ``` const AWS = require('aws-sdk'); const fs = require('fs'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; const object_name = 'sample-object'; const local_file_path = '/tmp/test.txt'; (() => { let outStream = fs.createWriteStream(local_file_path); let inStream = S3.getObject({ Bucket: bucket_name, Key: object_name }).createReadStream(); inStream.pipe(outStream); inStream.on('end', () => { console.log("Download Done"); }); })(); ``` #### Delete files ``` const AWS = require('aws-sdk'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; (async () => { // Delete Folder let object_name = 'sample-folder/'; await S3.deleteObject({ Bucket: bucket_name, Key: object_name }).promise(); // Delete File object_name = 'sample-object'; await S3.deleteObject({ Bucket: bucket_name, Key: object_name }).promise(); })(); ``` #### Set ACL ``` const AWS = require('aws-sdk'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket' const object_name = 'sample-object' const owner_id = 'test-owner-id' const target_id = 'test-user-id' (async () => { await S3.putObjectAcl({ Bucket: bucket_name, Key: object_name, AccessControlPolicy: { 'Grants': [ { 'Grantee': { 'ID': owner_id, 'Type': 'CanonicalUser' }, 'Permission': 'FULL_CONTROL' }, { 'Grantee': { 'ID': target_id, 'Type': 'CanonicalUser' }, 'Permission': 'READ' } ], 'Owner': { 'ID': owner_id } } }).promise(); })(); ``` #### Upload multiparts Caution If upload of multiparts is not completed, residual files remain in the bucket. The residual files are included in the bucket capacity and charged. Please be cautioned that the following method to prevent unnecessary charges by deleting incomplete multipart objects. 1. Receive notifications for incomplete multipart upload objects through Cloud Advisor 1. For more information on Cloud Advisor, see the [Cloud Advisor user guide](https://guide.ncloud-docs.com/docs/en/cloudadvisor-overview). 2. Check and delete incomplete multipart objects 1. View information on canceled or uncompleted multipart upload: [ListMultipartUploads API guide](https://api.ncloud-docs.com/docs/en/storage-objectstorage-listmultipartuploads) 2. Delete multipart: [AbortMultipartUpload API guide](https://api.ncloud-docs.com/docs/en/storage-objectstorage-abortmultipartupload) ``` const AWS = require('aws-sdk'); const fs = require('fs'); const endpoint = new AWS.Endpoint('https://kr.object.ncloudstorage.com'); const region = 'kr-standard'; const access_key = 'ACCESS_KEY'; const secret_key = 'SECRET_KEY'; const S3 = new AWS.S3({ endpoint: endpoint, region: region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key } }); const bucket_name = 'sample-bucket'; const local_file_name = '/tmp/sample.file'; const object_name = 'sample-large-object'; let options = { partSize: 5 * 1,024 * 1,024 }; (async () => { await S3.upload({ Bucket: bucket_name, Key: object_name, Body: fs.createReadStream(local_file_name) }, options).promise(); })(); ``` #### Set cross-origin resource sharing (CORS) ``` const AWS = require("aws-sdk"); const endpoint = new AWS.Endpoint("https://kr.object.ncloudstorage.com"); const region = "kr-standard"; const access_key = ""; const secret_key = ""; const S3 = new AWS.S3({ endpoint, region, credentials: { accessKeyId: access_key, secretAccessKey: secret_key, }, }); const bucket_name = "sample-bucket"; const params = { Bucket: bucket_name, CORSConfiguration: { CORSRules: [ { AllowedHeaders: ["*"], AllowedMethods: ["GET", "PUT"], AllowedOrigins: ["*"], MaxAgeSeconds: 3,000, }, ], }, }; (async () => { // Set CORS await S3.putBucketCors(params).promise(); // Get CORS const response = await S3.getBucketCors({ Bucket: bucket_name }).promise(); console.log(JSON.stringify(response, null, 2)); })(); ```