mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2026-01-25 02:08:24 +00:00
* feat google storage * feat google storage * add google storage writablestream * add google storage writablestream * add google storage writablestream * add metadata to google storage * add metadata to google storage * add metadata to google storage * add tags to google storage * fix * fix * fix * fix
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
const GoogleStorageUploadStream = require('./google-storage');
|
|
const S3MultipartUploadStream = require('./s3-multipart-upload-stream');
|
|
|
|
const getUploader = (Key, metadata, bucket_credential, logger) => {
|
|
const uploaderOpts = {
|
|
bucketName: bucket_credential.name,
|
|
Key,
|
|
metadata
|
|
};
|
|
switch (bucket_credential.vendor) {
|
|
case 'aws_s3':
|
|
uploaderOpts.bucketCredential = {
|
|
credentials: {
|
|
accessKeyId: bucket_credential.access_key_id,
|
|
secretAccessKey: bucket_credential.secret_access_key,
|
|
},
|
|
region: bucket_credential.region || 'us-east-1'
|
|
};
|
|
return new S3MultipartUploadStream(logger, uploaderOpts);
|
|
case 'google':
|
|
const serviceKey = JSON.parse(bucket_credential.service_key);
|
|
uploaderOpts.bucketCredential = {
|
|
projectId: serviceKey.project_id,
|
|
credentials: {
|
|
client_email: serviceKey.client_email,
|
|
private_key: serviceKey.private_key
|
|
}
|
|
};
|
|
return new GoogleStorageUploadStream(logger, uploaderOpts);
|
|
|
|
default:
|
|
logger.error(`unknown bucket vendor: ${bucket_credential.vendor}`);
|
|
break;
|
|
}
|
|
return null;
|
|
};
|
|
|
|
module.exports = {
|
|
getUploader
|
|
};
|