Wie jedes andere unserer Module bietet auch das CloudFile-Modul eine benutzerfreundliche Oberfläche.
So können Sie das Modul ohne großen Aufwand in Ihren eigenen Erweiterungen einsetzen.
Ich werde Sie Schritt für Schritt durch die Bereitstellung von Cloud Storage-Funktionen führen:
1. Sie benötigen eine Liste der verfügbaren Verbindungen.
$cloudFileModule = new CloudFile_Module_Model();
$connections = $cloudFileModule->getAvailableConnections();
Dies gibt ein Array mit konfigurierten Verbindungen im folgenden Format zurück:
array {
0 =>
array (size=3)
'titel' => string 'ConnectionTitle'
'connectionid' => string 'Connection ID'
'image_16' => string 'URL to provider Image 16x16'
1 =>
array (size=3)
'titel' => string 'ConnectionTitle'
'connectionid' => string 'Connection ID'
'image_16' => string 'URL to provider Imagee 16x16'
2 =>
array (size=3)
'titel' => string 'ConnectionTitle'
'connectionid' => string 'Connection ID'
'image_16' => string 'URL to provider Image 16x16'
...
}
Verwenden Sie diese Liste, um die Verbindungs-ID auszuwählen, die Sie verwenden möchten.
2. Die Verbindung verwenden
Dies ist der wichtige Schritt, aber nicht viel schwieriger, als der erste.
Sie müssen nur die beiden Systeme kennen:
Es gibt hierarchische und ID-basierte Systeme.
- Hierarchische Dateisysteme werden mit “echtem” Dateipfad, Verzeichnissen, Unterverzeichnissen, ……. Beispiele sind FTP, Dropbox, Filesystem, etc.
- ID-basierte Systeme, die Dateipfade nur zur Organisation der visuellen Präsentation verwenden, aber nur mit IDs arbeiten. Jedes Verzeichnis und jede Datei haben eine eindeutige ID. Ein wichtiges Beispiel ist Google Drive.
Da das CloudFile-Modul beide Typen unterstützt, erhalten Sie bei jeder Arbeit mit Dateien und Verzeichnissen einen Pfad und einen Schlüssel. Verwenden Sie beide, um vollständig kompatibel zu beiden Systemen zu sein.
2.1 Verbindungsobjekt holen
$connection = \CloudFile\Connection::getAdapter($connection_id);
Das war alles!
Jetzt haben Sie ein Objekt von Ihrem Adapter, das von der \CloudFile\Adapter\Base erbt und mit dem Cloud-Speicher arbeiten kann.
Hier finden Sie alle verfügbaren Methoden: https://redoonetworks.github.io/VtigerCRM-CloudFile-Developers/output/classes/CloudFile.Adapter.Base.html
Beispiele
Ordner erstellen:
$connection->mkdir('New Folder Name');
Datei hochladen:
$connection->upload($localFilename, basename($localFilename));
Hiermit wird die Datei von $localFilename in den aktuellen Ordner und den gleichen Dateinamen der lokalen Datei hochgeladen.