npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@digitalnodecom/node-red-contrib-generic-s3

v1.15.1

Published

Generic node-red S3 nodes

Downloads

328

Readme

node-red-contrib-generic-s3

IMPORTANT!!!

VERSION 1.12.x REQUIRES NODE.JS 17.x OR LATER. PLEASE DO NOT UPDATE UNLESS THIS REQUIREMENT IS MET SINCE THESE NODES WILL PRODUCE EXCEPTION THAT WILL CRASH NODE-RED

Also please do not update to version 1.12.x without previously througly testing it, since it may require some logic changes in your whole flow.

To run development mode, make sure that your 1880 port is free, or specify another port in watch script, and then just run from the root of the project

npm run dev

​ ​

These node-red nodes are meant to work with any S3 provider while making the workflow easier to follow

​ Node name | Detailed information ------------- | ------------- List Buckets | This node is used for listing all buckets that are available with the configured client List Objects (Depracted) | This node is used to list all objects that are within a bucket. The bucket can be specified either directly on this node properties or by setting input property msg.bucket | There are few other added properties to this node from 1.3.2 release such as Max keys - Positive integer value up to 1000 that specifies how many keys(objects) can be maximum listed per request. It can also be set by input message property msg.maxkeys | Marker - Where you want the listing to start from. The listing starts after this specified key and the marker can be any key in the bucket. It can also be set by input message property msg.marker | Prefix - This property limits the response to keys that begin with the specified prefix. It can also be set by input message property msg.prefix. List Objects V2 | This node is used to list all objects that are within a bucket. The bucket can be specified either directly on this node properties or by setting input property msg.bucket | There are few other added properties to this node from 1.3.2 release such as Max keys - Positive integer value up to 1000 that specifies how many keys(objects) can be maximum listed per request. It can also be set by input message property msg.maxkeys | Start after - Where you want the listing to start from. The listing starts after this specified key and the start after marker can be any key in the bucket. It can also be set by input message property msg.startafter | Prefix - This property limits the response to keys that begin with the specified prefix. It can also be set by input message property msg.prefix | ContinuationToken - This property indicates that the list is being continued on this bucket with a token. The Continuation Token is obfuscated and is not a real key. It can aslo be set by input message property msg.continuationtoken Please note that we recommend using this node instead of List Objects, since that one is depracted and it will be removed with the next major release List Object Versions | This node is used to list all object(s) version(s) that are within a bucket. The bucket can be specified either directly on this node properties or by setting input property msg.bucket | Max keys - Positive integer value up to 1000 that specifies how many keys(objects) can be maximum listed per request. It can also be set by input message property msg.maxkeys | Key marker - Where you want the listing to start from. The listing starts after this specified key and the start after marker can be any key in the bucket. It can also be set by input message property msg.keymarker | Version ID Marker - This property specifies the object version you want to start listing from. It can also be set by unput message property msg.versionidmarker | Prefix - This property limits the response to keys that begin with the specified prefix. It can also be set by input message property msg.prefix. Get Object | This node is used to get object contents and metadata from the specified bucket using the configured client. The Bucket, Object Key, Version ID and Stringify body can be specified in the properties of the node or by setting input properties msg.bucket, msg.key, msg.versionid, msg.stringifybody and msg.stringifybodybase64 respectively Get Objects | This node is used to get multiple objects contents and metadata from specified bucket using the configured client. Objects - Array of json objects that have the same format as the objects in Get Object node. This value can be specified in the node properites or by setting input property like msg.objects - Array of objects that the user wants to fetch the contents from. Head Object | This node is used to get object metadata from the specified bucket using the configured client while not fetching the object itself. The Bucket, Object Key and Version ID can be specified in the properties of the node or by setting input properties msg.bucket, msg.key and msg.versionid respectively Object exists | This node is used to check if an object exists, and if it does, return it's metadata using headObject. If the object does not exist the returned payload is false. The Bucket, Object Key and Version ID can be specified in the properties of the node or by setting input properties msg.bucket, msg.key and msg.versionid respectively Create Bucket | This node is used to create bucket with perviously defined S3 client used in the configuration. The bucket name can be specified either directly on the node properties or by setting input property msg.bucket Put Object | This node is used to create or update object and(or) object's metadata with a specific key within a specified bucket. Bucket - The bucket | Key - The object key | Content-Type - Content-Type of the object's data | Body - Actual contents of the object | Stream - (Optional) The provided body is a stream. For streamifying the body contents we recommend this function | Metadata - (Optional) Metadata of the object | Upsert - Upserting flag | ACL - Object ACL | Content Encoding - (Optional) Object's content encoding. These values can be specified in the node properites or by setting input properties like the following msg.bucket - The bucket | msg.key - The object key | msg.contentType - Content-Type of the object's data | msg.body - Actual contents of the object | msg.stream - (Optional) The provided body is a stream. For streamifying the body contents we recommend this function | msg.metadata - (Optional) Metadata of the object | msg.upsert - (Optional) Upsert flag which before inserting compares the ETag(if the object already exists) with calculated MD5 hash of the inserting object body, and if they differ, then the object is updated | msg.acl - (Optional) Object ACL | msg.contentencoding - (Optional) Object's content encoding. Move Object | This node is used to move an object within one bucket or across different buckets. Destination Bucket - The destination bucket where the object is going to be moved | Destination Key - The destination object key | Source Bucket - The source bucket where the object is located that is going to be moved | Source Object Key - The source key of the object that is going to be moved. | Destination Content Encoding - (Optional) Object's content encoding. | ACL - (Optional) Specifies which users have access to the object, and the type of access they have. These values can be specified in the node properites or by setting input properties like the following msg.bucket - The destination bucket where the object is going to be moved | msg.key - The destination object key | msg.sourcebucket - The source bucket where the object is located that is going to be moved | msg.sourcekey - The source key of the object that is going to be moved. | msg.contentencoding - (Optional) Object's content encoding. | msg.acl - (Optional) Specifies the object ACL permissions. Put Object ACL | This node is used to update the ACL (Access Control List) of an S3 object. There are three mandatory paramaters for this node. Bucket - The bucket | Key - The object key | ACL - Specifies which users have access to the object, and the type of access they have. These values can be specified in the node properites or by setting input properties like the following msg.bucket - The bucket where the object is located | msg.key - The object key | msg.acl - Specifies the ACL permissions of an S3 object. Put Objects | This node is used to create or update objects and(or) object's metadata with a specific key within a specified bucket. Objects - Array of json objects that have the same format as the objects in Put Object node | Upsert - Upserting flag. This value can be specified in the node properites or by setting input properties like the following msg.objects - Array of objects that the user wants to create and(or) update in a bucket. The object structure is the same as the one in the Put Object and the same rules apply of it as well | msg.upsert - (Optional) Upsert flag which before inserting compares the ETag(if the object already exists) with calculated MD5 hash of the inserting object body, and if they differ, then the object is updated. This is done for each object in the provided array Delete Object | This node is used to delete object from a specified bucket. Object's key and the bucket can be specified in the node properites or by setting input properties in msg.bucket and(or) msg.key Copy Object | This node is used to copy object from specified bucket. There are few necesearry paramaters and one optional paramaters for this node. Bucket - The bucket | Key - The key of the new object, into the which contents are going to be copied from the object specified in Copy Source | Copy Source - Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point: 1. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (/). For example, to copy the object reports/january.pdf from the bucket awsexamplebucket, use awsexamplebucket/reports/january.pdf. 2. For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. | Version ID (optional) - Specific version of the object that you want to copy. | Destination Content Encoding - (Optional) Object's content encoding | ACL - Destination object ACL. By default the latest version of the object is copied. | These values can be specified in the node properites or by setting input properties like the following msg.bucket - The bucket | msg.key - The new object key | msg.copysource - The source that the user want to be copied, explained in details above | msg.versionid (optional) - Specific version of the object that you want to copy. | msg.contentencoding - (Optional) Object's content encoding | msg.acl - (Optional) Destination object ACL. client-s3 | Configuration node used in all of the above mentioned nodes to perform the specified operations. Here are few tips for it that will make it much easier to use the node. The S3 endpoint should be an url beggining with http:// or https://. There are fields for Access Key and Key Secret, and it is recomended that you use environment variables. Environment variables in node-red can be inputted like by enclosing the name of the variable by parentheses and prefixing it with $. E.g. $(nameOfTheVar)

Install these nodes using the following command or directly via node-red dashboard

npm install @digitalnodecom/node-red-contrib-generic-s3