S3 compatible storage (#228)

* compatible credential test

* support s3 compatible storages

* fix typo

* change logging

* add missing option
This commit is contained in:
Anton Voylenko authored and GitHub committed 2023-09-12 12:25:06 -04:00
1 parent d5f5e3a86f
commit 02c9a951d4
6 files changed
+47 -25

No files matched your search

+13 -3
View File
@@ -2,10 +2,10 @@ const AzureStorageUploadStream = require('./azure-storage');
const GoogleStorageUploadStream = require('./google-storage');
const S3MultipartUploadStream = require('./s3-multipart-upload-stream');
const getUploader = (Key, metadata, bucket_credential, logger) => {
const getUploader = (key, metadata, bucket_credential, logger) => {
const uploaderOpts = {
bucketName: bucket_credential.name,
Key,
objectKey: key,
metadata
};
switch (bucket_credential.vendor) {
@@ -18,6 +18,17 @@ const getUploader = (Key, metadata, bucket_credential, logger) => {
region: bucket_credential.region || 'us-east-1'
};
return new S3MultipartUploadStream(logger, uploaderOpts);
case 's3_compatible':
uploaderOpts.bucketCredential = {
endpoint: bucket_credential.endpoint,
credentials: {
accessKeyId: bucket_credential.access_key_id,
secretAccessKey: bucket_credential.secret_access_key,
},
region: 'us-east-1',
forcePathStyle: true
};
return new S3MultipartUploadStream(logger, uploaderOpts);
case 'google':
const serviceKey = JSON.parse(bucket_credential.service_key);
uploaderOpts.bucketCredential = {
@@ -31,7 +42,6 @@ const getUploader = (Key, metadata, bucket_credential, logger) => {
case 'azure':
uploaderOpts.connection_string = bucket_credential.connection_string;
return new AzureStorageUploadStream(logger, uploaderOpts);
default:
logger.error(`unknown bucket vendor: ${bucket_credential.vendor}`);
break;