@fnet/files-to-aws-s3
v0.1.5
Published
The **@fnet/files-to-aws-s3** package is a versatile tool designed to upload files from a local system to an Amazon Web Services (AWS) Simple Storage Service (S3) bucket.
Downloads
41
Readme
@fnet/files-to-aws-s3
The @fnet/files-to-aws-s3 package is a versatile tool designed to upload files from a local system to an Amazon Web Services (AWS) Simple Storage Service (S3) bucket.
Functionality
The primary intent of this project is to facilitate the upload of files to S3 based on a specific pattern and directory. It provides users with an async function that uploads matching files from the local directory to an AWS S3 bucket. The bucket and its associated access parameters are specified by the user.
Ease of Use
For usability, the function accepts an arguments object with details such as an AWS access key ID, secret access key, the name of the S3 bucket, the source directory on the local drive, and a glob pattern to pinpoint which files in the directory should be uploaded.
To make the process more controllable, optional parameters such as the destination directory in the bucket, dry-run for testing purposes, additional metadata, and verbose mode for detailed logging are also enabled.
Detailed Operations
The function works by initializing an AWS S3 client using the provided credentials and region information. It then uses a library function '@flownet/lib-list-files' to fetch the list of files following the pattern in the specified directory. For each file, it reads the file content, formulates a destination path in the S3 bucket, sets the metadata, and commands an upload to the bucket using AWS's PutObjectCommand.
The dry run feature ensures the function to be run without the actual upload, and the verbose flag enables detailed logging of upload operations for monitoring or debugging purposes. It maintains a list of all the uploaded files and their details, which it returns at the end.
In sum, @fnet/files-to-aws-s3 is a comprehensive package simplifying the step of uploading files from a local system to an AWS S3 bucket, offering a high level of customization to fit varied user needs.