Konfigurieren von S3 und OpenStack Swift Objects als primäre Speicherung¶
In der ownCloud Enterprise Version können Sie S3-Objekte als primäre Speicherung konfigurieren. Das ersetzt das Standard-Datenverzeichnis, das ist /var/www/owncloud/data bei einer Standard Linux Installation, und C:\inetpub\wwwroot\owncloud\data unter einem Windows Server. Allerdings müssen Sie möglicherweise um das data/ Verzeichnis aus diesen Gründen weiterhin vorhalten:
- Die Log-Datei von ownCloud wird im Datenverzeichnis gespeichert
- Legacy-Anwendungen unterstützen möglicherweise kein anderes als das data/ Verzeichnis.
Sie können Ihre Logdateien durch Änderung seiner Lage in der config.php anpassen. Sie müssen jedoch das data/ Verzeichnis weiterhin vorhalten um die Abwärtskompatibilität mit einigen Anwendungen sicherzustellen.
Auswirkungen¶
Es ist wichtig zu beachten, dass ownCloud den Objektspeicher-Modus erwartet exklusive Zugriff auf den Objektspeicher Container, denn hier werden nur die Binärdaten für jede Datei gespeichert. Die Metadaten werden gegenwärtig in der lokalen Datenbank aus Performance-Gründen gehalten.
Die aktuelle Implementierung ist nicht kompatibel mit jeder Anwendung, die direkte Datei-E/A verwendet und damit das virtuelle Dateisystem von ownCloud umgeht. Dazu gehören die Verschlüsselungs und Gallery App. Die Gallery App speichert Miniaturansichten direkt in das Dateisystem, und die Verschlüsselungs-App verursacht ein schweres Overhead, weil die benötigten Schlüsseldateien zusätzlich zu jeder angeforderte Datei abgerufen werden.
Konfiguration¶
Sehen Sie sich die config.sample.php für eine Beispiel-Konfigurationen an. Kopieren Sie die relevanten Teile in Ihre config.php Datei. Jedes implementierte Objekt muss hier \\OCP\\Files\\ObjectStore\\IObjectStore vorhanden sein und es können dem Konstuktor die entsprechenden Parameter übergeben werden, mit dem arguments Schlüssel:
'objectstore' => array(
'class' => 'Implementation\\Of\\OCP\\Files\\ObjectStore\\IObjectStore',
'arguments' => array(
...
),
),
Amazon S3¶
Der S3-Backend verwendet ein Bucket um dem Amazon S3-Objektspeicher in das virtuelle Dateisystem zu mounten. Die Klasse die verwendet wird, ist OCA\ObjectStore\S3:
'objectstore' => array(
'class' => 'OCA\ObjectStore\S3',
'arguments' => array(
'key' => 'yourkey',
'secret' => 'yoursecret',
'bucket' => 'your-oc-bucket',
),
),
Ceph S3¶
Dieser S3-Backend kann auch verwendet werden, um das Bucket eines ceph Objektspeicher über die S3 API in das virtuelle Dateisystem zu mounten. Die Klasse die verwendet wird, ist OCA\ObjectStore\S3:
'objectstore' => array(
'class' => 'OCA\ObjectStore\S3',
'arguments' => array(
'key' => 'GEZ550B06Z2ZDB52CT21',
'secret' => '6Vdo7ObSMBlI4TMRw0jpRE75K6qS9QNTk6nBboxP',
'bucket' => 'devobjectstore',
'base_url' => 'http://ceph/',
'hostname' => 'ceph',
// you must use this region or the amazon lib will overwrite
// the path style when resetting the region
'region' => 's3-eu-west-1.amazonaws.com'
),
),
OpenStack Swift¶
Das Swift-Backend verwendet einen Container auf einem Openstack Object Storage Server um diesen in das virtuelle Dateisystem zu mounten. Die Klasse die verwendet wird, ist \\OC\\Files\\ObjectStore\\Swift:
'objectstore' => array(
'class' => 'OC\\Files\\ObjectStore\\Swift',
'arguments' => array(
'username' => 'demo',
'password' => 'password',
'container' => 'owncloud',
'autocreate' => true,
'region' => 'RegionOne',
'url' => 'http://devstack:5000/v2.0',
'tenantName' => 'demo',
'serviceName' => 'swift',
),
),