summaryrefslogtreecommitdiffstats
path: root/api/file.go
diff options
context:
space:
mode:
authorBen Burkert <benburkert@cloudflare.com>2015-12-21 11:24:01 -0800
committerBen Burkert <benburkert@cloudflare.com>2015-12-21 16:51:37 -0800
commitecef2c8cb5525c55dc56a81c53896d244f27deeb (patch)
treef383b520574623550a8f9e1a93bc0f9c48df563e /api/file.go
parenta960cf5244ed930d694a4ddafb561d6d7e7a0a02 (diff)
downloadchat-ecef2c8cb5525c55dc56a81c53896d244f27deeb.tar.gz
chat-ecef2c8cb5525c55dc56a81c53896d244f27deeb.tar.bz2
chat-ecef2c8cb5525c55dc56a81c53896d244f27deeb.zip
support unofficial S3 regions
Adds support for S3 clones like Ceph.
Diffstat (limited to 'api/file.go')
-rw-r--r--api/file.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/api/file.go b/api/file.go
index 4339e610b..956444306 100644
--- a/api/file.go
+++ b/api/file.go
@@ -538,7 +538,7 @@ func writeFile(f []byte, path string) *model.AppError {
auth.AccessKey = utils.Cfg.FileSettings.AmazonS3AccessKeyId
auth.SecretKey = utils.Cfg.FileSettings.AmazonS3SecretAccessKey
- s := s3.New(auth, aws.Regions[utils.Cfg.FileSettings.AmazonS3Region])
+ s := s3.New(auth, awsRegion())
bucket := s.Bucket(utils.Cfg.FileSettings.AmazonS3Bucket)
ext := filepath.Ext(path)
@@ -578,7 +578,7 @@ func readFile(path string) ([]byte, *model.AppError) {
auth.AccessKey = utils.Cfg.FileSettings.AmazonS3AccessKeyId
auth.SecretKey = utils.Cfg.FileSettings.AmazonS3SecretAccessKey
- s := s3.New(auth, aws.Regions[utils.Cfg.FileSettings.AmazonS3Region])
+ s := s3.New(auth, awsRegion())
bucket := s.Bucket(utils.Cfg.FileSettings.AmazonS3Bucket)
// try to get the file from S3 with some basic retry logic
@@ -629,3 +629,17 @@ func openFileWriteStream(path string) (io.Writer, *model.AppError) {
func closeFileWriteStream(file io.Writer) {
file.(*os.File).Close()
}
+
+func awsRegion() aws.Region {
+ if region, ok := aws.Regions[utils.Cfg.FileSettings.AmazonS3Region]; ok {
+ return region
+ }
+
+ return aws.Region{
+ Name: utils.Cfg.FileSettings.AmazonS3Region,
+ S3Endpoint: utils.Cfg.FileSettings.AmazonS3Endpoint,
+ S3BucketEndpoint: utils.Cfg.FileSettings.AmazonS3BucketEndpoint,
+ S3LocationConstraint: *utils.Cfg.FileSettings.AmazonS3LocationConstraint,
+ S3LowercaseBucket: *utils.Cfg.FileSettings.AmazonS3LowercaseBucket,
+ }
+}