Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Fausto95/aws-s3
S3Client - A Javascript Library for AWS S3 File Upload
https://github.com/Fausto95/aws-s3
javascript-library s3-bucket s3client
Last synced: 2 months ago
JSON representation
S3Client - A Javascript Library for AWS S3 File Upload
- Host: GitHub
- URL: https://github.com/Fausto95/aws-s3
- Owner: Fausto95
- License: mit
- Archived: true
- Created: 2017-10-17T20:37:24.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-04-06T08:36:53.000Z (almost 3 years ago)
- Last Synced: 2024-11-07T09:53:20.293Z (3 months ago)
- Topics: javascript-library, s3-bucket, s3client
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/aws-s3
- Size: 282 KB
- Stars: 112
- Watchers: 3
- Forks: 67
- Open Issues: 47
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-made-by-angolans - aws-s3
README
🚨🚨🚨 STALE 🚨🚨🚨
> While this library might still work, I'm no longer maintaining it. Feel free to fork and patch if needed.
# S3Client AWS-S3
S3Client - A Javascript Library for AWS S3 File Upload
```
npm install --save aws-s3
```# Examples Uploading An Image
## ***Uploading to S3***
```js
import S3 from 'aws-s3';const config = {
bucketName: 'myBucket',
dirName: 'photos', /* optional */
region: 'eu-west-1',
accessKeyId: 'ANEIFNENI4324N2NIEXAMPLE',
secretAccessKey: 'cms21uMxçduyUxYjeg20+DEkgDxe6veFosBT7eUgEXAMPLE',
s3Url: 'https://my-s3-url.com/', /* optional */
}const S3Client = new S3(config);
/* Notice that if you don't provide a dirName, the file will be automatically uploaded to the root of your bucket *//* This is optional */
const newFileName = 'my-awesome-file';S3Client
.uploadFile(file, newFileName)
.then(data => console.log(data))
.catch(err => console.error(err))/**
* {
* Response: {
* bucket: "your-bucket-name",
* key: "photos/image.jpg",
* location: "https://your-bucket.s3.amazonaws.com/photos/image.jpg"
* }
* }
*/
});
```## ***Deleting an existing file in your bucket***
In this case the file that we want to delete is in the folder 'photos'
```js
import S3 from 'aws-s3';const config = {
bucketName: 'myBucket',
dirName: 'school-documents',
region: 'eu-west-1',
accessKeyId: 'ANEIFNENI4324N2NIEXAMPLE',
secretAccessKey: 'cms21uMxçduyUxYjeg20+DEkgDxe6veFosBT7eUgEXAMPLE',
s3Url: 'https://my-s3-url.com/', /* optional */
}const S3Client = new S3(config);
const filename = 'hello-world.pdf';
/* If the file that you want to delete it's in your bucket's root folder, don't provide any dirName in the config object */
//In this case the file that we want to delete is in the folder 'photos' that we referred in the config object as the dirName
S3Client
.deleteFile(filename)
.then(response => console.log(response))
.catch(err => console.error(err))/**
* {
* Response: {
* ok: true,
status: 204,
message: 'File deleted',
fileName: 'hello-world.pdf'
* }
* }
*/
});
```## ***S3 Bucket Policy***
Doc: http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
```json
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow all kind of http requests originating from http://www.your-website.com and https://www.your-website.com",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::myBucket/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"https://www.your-website.com",
"http://www.your-website.com"
]
}
}
}
]
}
```Defaults your bucket to `public-read` : http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
`config`
* `bucketName` **required** - Your S3 bucket
* `dirName` **required** - Your S3 folderName/dirName
* `region` **required** - Your S3 bucket's region
* `accessKeyId` **required** - Your S3 `AccessKeyId`
* `secretAccessKey` **required** - Your S3 `SecretAccessKey`
* `s3Url` **optional** - Your S3 URL## License
MIT