Skip to content

Commit

Permalink
Merge pull request #7443 from RocketChat/hotfix/allow-s3-custom-endpoint
Browse files Browse the repository at this point in the history
[FIX] S3 uploads not working for custom URLs
  • Loading branch information
rodrigok committed Jul 14, 2017
1 parent 0c0fa2a commit e7e6cbe
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 6 deletions.
11 changes: 9 additions & 2 deletions packages/rocketchat-file-upload/server/config/AmazonS3.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@ const configure = _.debounce(function() {
const AWSSecretAccessKey = RocketChat.settings.get('FileUpload_S3_AWSSecretAccessKey');
const URLExpiryTimeSpan = RocketChat.settings.get('FileUpload_S3_URLExpiryTimeSpan');
const Region = RocketChat.settings.get('FileUpload_S3_Region');
const SignatureVersion = RocketChat.settings.get('FileUpload_S3_SignatureVersion');
const ForcePathStyle = RocketChat.settings.get('FileUpload_S3_ForcePathStyle');
// const CDN = RocketChat.settings.get('FileUpload_S3_CDN');
// const BucketURL = RocketChat.settings.get('FileUpload_S3_BucketURL');
const BucketURL = RocketChat.settings.get('FileUpload_S3_BucketURL');

if (!Bucket || !AWSAccessKeyId || !AWSSecretAccessKey) {
return;
Expand All @@ -43,7 +45,8 @@ const configure = _.debounce(function() {
connection: {
accessKeyId: AWSAccessKeyId,
secretAccessKey: AWSSecretAccessKey,
signatureVersion: 'v4',
signatureVersion: SignatureVersion,
s3ForcePathStyle: ForcePathStyle,
params: {
Bucket,
ACL: Acl
Expand All @@ -53,6 +56,10 @@ const configure = _.debounce(function() {
URLExpiryTimeSpan
};

if (BucketURL) {
config.connection.endpoint = BucketURL;
}

AmazonS3Uploads.store = FileUpload.configureUploadsStore('AmazonS3', AmazonS3Uploads.name, config);
AmazonS3Avatars.store = FileUpload.configureUploadsStore('AmazonS3', AmazonS3Avatars.name, config);
}, 500);
Expand Down
14 changes: 14 additions & 0 deletions packages/rocketchat-file-upload/server/startup/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,20 @@ RocketChat.settings.addGroup('FileUpload', function() {
},
i18nDescription: 'Override_URL_to_which_files_are_uploaded_This_url_also_used_for_downloads_unless_a_CDN_is_given.'
});
this.add('FileUpload_S3_SignatureVersion', 'v4', {
type: 'string',
enableQuery: {
_id: 'FileUpload_Storage_Type',
value: 'AmazonS3'
}
});
this.add('FileUpload_S3_ForcePathStyle', false, {
type: 'boolean',
enableQuery: {
_id: 'FileUpload_Storage_Type',
value: 'AmazonS3'
}
});
this.add('FileUpload_S3_URLExpiryTimeSpan', 120, {
type: 'int',
enableQuery: {
Expand Down
10 changes: 6 additions & 4 deletions packages/rocketchat-i18n/i18n/en.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -592,10 +592,12 @@
"FileUpload_MediaTypeWhiteListDescription": "Comma-separated list of media types. Leave it blank for accepting all media types.",
"FileUpload_ProtectFiles": "Protect uploaded files",
"FileUpload_ProtectFilesDescription": "Only authenticated users will have access",
"FileUpload_S3_Acl": "Amazon S3 acl",
"FileUpload_S3_AWSAccessKeyId": "Amazon S3 AWSAccessKeyId",
"FileUpload_S3_AWSSecretAccessKey": "Amazon S3 AWSSecretAccessKey",
"FileUpload_S3_Bucket": "Amazon S3 bucket name",
"FileUpload_S3_Acl": "Acl",
"FileUpload_S3_AWSAccessKeyId": "Access Key",
"FileUpload_S3_AWSSecretAccessKey": "Secret Key",
"FileUpload_S3_Bucket": "Bucket name",
"FileUpload_S3_SignatureVersion": "Signature Version",
"FileUpload_S3_ForcePathStyle": "Force Path Style",
"FileUpload_S3_BucketURL": "Bucket URL",
"FileUpload_S3_CDN": "CDN domain for downloads",
"FileUpload_S3_Region": "Region",
Expand Down

0 comments on commit e7e6cbe

Please sign in to comment.