1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-06-03 17:14:08 +02:00

add multibucket s3 option

This commit is contained in:
Robin Appelman 2021-11-04 16:59:34 +01:00
commit 4ce3d45e64
6 changed files with 34 additions and 3 deletions

View file

@ -26,7 +26,7 @@ RUN DEBIAN_FRONTEND=noninteractive ;\
pip3 install awscli-plugin-endpoint && \ pip3 install awscli-plugin-endpoint && \
wget https://phar.phpunit.de/phpunit-8.phar -O /usr/local/bin/phpunit.phar wget https://phar.phpunit.de/phpunit-8.phar -O /usr/local/bin/phpunit.phar
ADD configs/autoconfig_mariadb.php configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/s3.php configs/swift.php configs/swiftv3.php configs/azure.php configs/config.php /root/ ADD configs/autoconfig_mariadb.php configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/s3.php configs/s3mb.php configs/swift.php configs/swiftv3.php configs/azure.php configs/config.php /root/
ADD configs/nginx-app.conf /etc/nginx/ ADD configs/nginx-app.conf /etc/nginx/
RUN mkdir --parent /var/log/cron RUN mkdir --parent /var/log/cron

View file

@ -1,7 +1,6 @@
'objectstore' => [ 'objectstore' => [
'class' => 'OC\Files\ObjectStore\S3', 'class' => 'OC\Files\ObjectStore\S3',
'arguments' => [ 'arguments' => [
// replace with your bucket
'bucket' => 'nextcloud', 'bucket' => 'nextcloud',
'autocreate' => true, 'autocreate' => true,
'key' => 'dummy', 'key' => 'dummy',

View file

@ -0,0 +1,15 @@
'objectstore_multibucket' => [
'class' => 'OC\Files\ObjectStore\S3',
'arguments' => [
'num_buckets' => 64,
'bucket' => 'nextcloud-',
'autocreate' => true,
'key' => 'dummy',
'secret' => 'dummyj',
'hostname' => 's3',
'port' => 4566,
'use_ssl' => false,
'use_path_style' => true,
'uploadPartSize' => 52428800,
],
],

View file

@ -45,6 +45,11 @@ then
sed -i '/\/\/PLACEHOLDER/ r /root/s3.php' /var/www/html/config/config.php sed -i '/\/\/PLACEHOLDER/ r /root/s3.php' /var/www/html/config/config.php
fi fi
if [ -n "$S3MB" ]
then
sed -i '/\/\/PLACEHOLDER/ r /root/s3mb.php' /var/www/html/config/config.php
fi
if [ -n "$SWIFT" ] if [ -n "$SWIFT" ]
then then
sed -i '/\/\/PLACEHOLDER/ r /root/swift.php' /var/www/html/config/config.php sed -i '/\/\/PLACEHOLDER/ r /root/swift.php' /var/www/html/config/config.php

View file

@ -75,6 +75,7 @@ impl Service {
pub fn from_type(ty: &str) -> Option<&'static [Self]> { pub fn from_type(ty: &str) -> Option<&'static [Self]> {
match ty { match ty {
"s3" => Some(&[Service::ObjectStore(ObjectStore::S3)]), "s3" => Some(&[Service::ObjectStore(ObjectStore::S3)]),
"s3mb" => Some(&[Service::ObjectStore(ObjectStore::S3mb)]),
"ldap" => Some(&[Service::LDAP(LDAP), Service::LDAPAdmin(LDAPAdmin)]), "ldap" => Some(&[Service::LDAP(LDAP), Service::LDAPAdmin(LDAPAdmin)]),
"onlyoffice" => Some(&[Service::OnlyOffice(OnlyOffice)]), "onlyoffice" => Some(&[Service::OnlyOffice(OnlyOffice)]),
"push" => Some(&[Service::Push(NotifyPush)]), "push" => Some(&[Service::Push(NotifyPush)]),

View file

@ -11,18 +11,27 @@ use maplit::hashmap;
#[derive(Debug, Clone, Eq, PartialEq)] #[derive(Debug, Clone, Eq, PartialEq)]
pub enum ObjectStore { pub enum ObjectStore {
S3, S3,
S3mb,
} }
impl ObjectStore { impl ObjectStore {
fn image(&self) -> &str { fn image(&self) -> &str {
match self { match self {
ObjectStore::S3 => "localstack/localstack:0.12.7", ObjectStore::S3 => "localstack/localstack:0.12.7",
ObjectStore::S3mb => "localstack/localstack:0.12.7",
} }
} }
fn self_env(&self) -> Vec<&str> { fn self_env(&self) -> Vec<&str> {
match self { match self {
ObjectStore::S3 => vec!["DEBUG=1", "SERVICES=s3"], ObjectStore::S3 => vec!["DEBUG=1", "SERVICES=s3"],
ObjectStore::S3mb => vec!["DEBUG=1", "SERVICES=s3"],
}
}
fn host_name(&self) -> &str {
match self {
ObjectStore::S3 => "s3",
ObjectStore::S3mb => "s3",
} }
} }
} }
@ -32,12 +41,14 @@ impl ServiceTrait for ObjectStore {
fn name(&self) -> &str { fn name(&self) -> &str {
match self { match self {
ObjectStore::S3 => "s3", ObjectStore::S3 => "s3",
ObjectStore::S3mb => "s3mb",
} }
} }
fn env(&self) -> &[&str] { fn env(&self) -> &[&str] {
match self { match self {
ObjectStore::S3 => &["S3=1"], ObjectStore::S3 => &["S3=1"],
ObjectStore::S3mb => &["S3MB=1"],
} }
} }
@ -66,7 +77,7 @@ impl ServiceTrait for ObjectStore {
networking_config: Some(NetworkingConfig { networking_config: Some(NetworkingConfig {
endpoints_config: hashmap! { endpoints_config: hashmap! {
network => EndpointSettings { network => EndpointSettings {
aliases: Some(vec![self.name().to_string()]), aliases: Some(vec![self.host_name().to_string()]),
..Default::default() ..Default::default()
} }
}, },