
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
@aws-sdk/client-s3-node
Advanced tools
To install the this package using NPM, simply type the following into a terminal window:
npm install @aws-sdk/client-s3-node
The AWS SDK is modulized by clients and commands in CommonJS modules. To send a request, you only need to import the client(S3Client) and the commands you need, for example PutObjectCommand:
//JavaScript
const { S3Client } = require("@aws-sdk/client-s3-node/S3Client");
const {
PutObjectCommand
} = require("@aws-sdk/client-s3-node/commands/PutObjectCommand");
//TypeScript
import { S3Client } from "@aws-sdk/client-s3-node/S3Client";
import { PutObjectCommand } from "@aws-sdk/client-s3-node/commands/PutObjectCommand";
To send a request, you:
send operation on client with command object as input.destroy() to close open connections.const s3 = new S3Client({region: 'region'});
//clients can be shared by different commands
const params = {
Body: /**a blob value*/
/**You can supply readable stream to streaming input. e.g. fs.createReadStream(file) */,
Bucket: /**a string value*/,
Key: /**a string value*/,
};
const putObjectCommand = new PutObjectCommand(params);
s3.send(putObjectCommand).then(data => {
// do something
}).catch(error => {
// error handling
})
In addition to using promises, there are 2 other ways to send a request:
// async/await
try {
const data = await s3.send(putObjectCommand);
// do something
} catch (error) {
// error handling
}
// callback
s3.send(putObjectCommand, (err, data) => {
//do something
});
The SDK can also send requests using the simplified callback style from version 2 of the SDK.
import * as AWS from "@aws-sdk/@aws-sdk/client-s3-node/S3";
const s3 = new AWS.S3({ region: "region" });
s3.putObject(params, (err, data) => {
//do something
});
For operations containing stream response like GetObject(), you can get response stream by accessing to streaming member. e.g. data.Body.pipe(/_ some writable stream _/).(data is the resolved response object)
When the service returns an exception, the error will include the exception information, as well as response metadata (e.g. request id).
try {
const data = await s3.send(putObjectCommand);
// do something
} catch (error) {
const metadata = error.$metadata;
console.log(
`requestId: ${metadata.requestId}
cfId: ${metadata.cfId}
extendedRequestId: ${metadata.extendedRequestId}`
);
/*
The keys within exceptions are also parsed. You can access them by specifying exception names:
if(error.name === 'SomeServiceException') {
const value = error.specialKeyInException;
}
*/
}
Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.
aws-sdk-jsThis client code is generated automatically. Any modifications will be overwritten the next time the `@aws-sdk/@aws-sdk/client-s3-node' package is updated. To contribute to SDK you can checkout our code generator package.
This SDK is distributed under the Apache License, Version 2.0, see LICENSE for more information.
FAQs
Node SDK for Amazon Simple Storage Service
We found that @aws-sdk/client-s3-node demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.