summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpierreozoux <pierre@ozoux.net>2020-08-28 15:22:26 +0200
committerPierre Ozoux <pierre@ozoux.net>2020-08-28 15:25:06 +0200
commit47032fddb61b8cd89c88ee9c9e832f55cbba11f2 (patch)
tree954acf9d3fe9b18d7796f781890bfe8bd02df242
parent1eb77283c1f005b5eac08c293774d2055a77cc65 (diff)
Adds ability to configure S3 object stores via environment variables
closes #1193 #1124 #1134 Co-authored-by: Adam Jenkins <adamjenkins1701@gmail.com> Co-authored-by: Stephen Cuppett <scuppett@redhat.com>
-rw-r--r--.config/s3.config.php22
-rw-r--r--README.md12
2 files changed, 34 insertions, 0 deletions
diff --git a/.config/s3.config.php b/.config/s3.config.php
new file mode 100644
index 00000000..d18d4a2e
--- /dev/null
+++ b/.config/s3.config.php
@@ -0,0 +1,22 @@
+
+<?php
+if (getenv('OBJECTSTORE_S3_BUCKET')) {
+ $use_ssl = getenv('OBJECTSTORE_S3_SSL');
+ $use_path = getenv('OBJECTSTORE_S3_USEPATH_STYLE');
+ $CONFIG = array(
+ 'objectstore' => array(
+ 'class' => '\OC\Files\ObjectStore\S3',
+ 'arguments' => array(
+ 'bucket' => getenv('OBJECTSTORE_S3_BUCKET'),
+ 'key' => getenv('OBJECTSTORE_S3_KEY') ?: '',
+ 'secret' => getenv('OBJECTSTORE_S3_SECRET') ?: '',
+ 'region' => getenv('OBJECTSTORE_S3_REGION') ?: '',
+ 'hostname' => getenv('OBJECTSTORE_S3_HOST') ?: '',
+ 'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
+ 'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
+ // required for some non Amazon S3 implementations
+ 'use_path_style' => $use_path == true && strtolower($use_path) !== 'false'
+ )
+ )
+ );
+}
diff --git a/README.md b/README.md
index c418622a..b288a983 100644
--- a/README.md
+++ b/README.md
@@ -158,6 +158,18 @@ To use an external SMTP server, you have to provide the connection details. To c
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP.
+To use an external S3 compatible object store as primary storage, set the following variables:
+- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server
+- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in
+- `OBJECTSTORE_S3_KEY`: AWS style access key
+- `OBJECTSTORE_S3_SECRET`: AWS style secret access key
+- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over
+- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server
+- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in.
+- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3
+
+Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information.
+
## Using the apache image behind a reverse proxy and auto configure server host and protocol