New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@pubsweet/component-aws-s3

Package Overview
Dependencies
Maintainers
5
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pubsweet/component-aws-s3

AWS S3 upload component for PubSweet

1.2.49
npm
Version published
Weekly downloads
3
Maintainers
5
Weekly downloads
 
Created
Source

AWS S3 File Upload Configuration

In order to use this component, the following configuration needs to be added to a PubSweet application inside a section named pubsweet-component-aws-s3:

  • secretAccessKey: the AWS_S3_SECRET_KEY value from the app's .env file
  • accessKeyId: the AWS_S3_ACCESS_KEY value from the app's .env file
  • region: the AWS_S3_REGION value from the app's .env file
  • bucket: the AWS_S3_BUCKET value from the app's .env file

For example:

"pubsweet-component-aws-s3": {
    "secretAccessKey": "process.env.AWS_S3_SECRET_KEY",
    "accessKeyId": "process.env.AWS_S3_ACCESS_KEY",
    "region": "process.env.AWS_S3_REGION",
    "bucket": "process.env.AWS_S3_BUCKET",
    "validations": "path.resolve(__dirname, 'upload-validations.js')",
  },

The .env file should look like this:

AWS_S3_ACCESS_KEY = exampleKey
AWS_S3_SECRET_KEY = exampleKey/sads/21
AWS_S3_REGION = region-name
AWS_S3_BUCKET = bucket-name

Then, as soon as possible in your app you should add the dotenv package:

require('dotenv').config()

component-aws-s3 API

A list of endpoints that help you upload, download and delete S3 files.

Upload a file [POST]

Request

POST /api/file

Request body
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWfPNVh4wuWBlyEyQ

------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="fileType"

supplementary
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="fragmentId"

545
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="file"; filename="attachment.txt"
Content-Type: text/plain

[file content goes there]
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Response
{
  "id": "fragment-id/file-id",
  "name": "Document Name.doc",
  "size": 452097
}

Retrieve file signed URL [GET]

This endpoint allows you to retrieve a file's signed URL that can be used to download the file.

Request

GET /api/files/{fragmentId}/{fileId}

URI ParameterRequieredRequirementsDescription
fragmentIdYesStringThe ID of the fragment
fileIdYesStringThe ID of the file
Query ParameterRequieredRequirementsDescription
downloadNoBooleanGet the file data blob if set to true.
Response
HTTP/1.1 200
{
	"signedUrl": "aws-url"
}

Retrieve files as zip [GET]

This endpoint allows you to retrieve a fragment's files as a zip archive.

Request

GET /api/files/{fragmentId}

URI ParameterRequieredRequirementsDescription
fragmentIdYesStringThe ID of the fragment
Query ParameterRequieredRequirementsDescription
fileTypesNoArray(String)Specify which file types to be included in the zip. All file types will be included if omitted
Response
HTTP/1.1 200
{
	"dataBlob"
}

Delete file [DELETE]

Request

DELETE /api/file/{fileId}

URI ParameterRequieredRequirementsDescription
fileIdYesStringThe ID of the file
Response
HTTP/1.1 204

FAQs

Package last updated on 30 Mar 2021

Did you know?

Socket

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.

Install

Related posts