Verwenden Sie DigitalOcean Spaces oder Amazon S3 für den Dateiverzeichnis in XF 2.1+

Verwenden Sie DigitalOcean Spaces oder Amazon S3 für den Dateiverzeichnis in XF 2.1+ 2.4.1

No permission to download
Kurzbeschreibung
Setting up DigitalOcean Spaces for XenForo 2.1+ video uploads simplifies remote file storage, ensuring smooth integration with Flysystem. This guide walks you through setting up DigitalOcean Spaces and configuring XF to use it, including creating API credentials and adjusting XF's config.php for optimal performance. For those preferring Amazon S3, the process is similar but skips DigitalOcean Spaces setup.
XenForo Versionspezifische KompatibilitätDie Download ist nur kompatibel mit XenForo 2.1 und darüber.Warum dieser Anweisungsbogen?Seit XenForo 2.0.0 unterstützen wir das Remote-Dateiverwaltungsystem.abstracted file system named FlysystemEs wird als abstrahierter Dateisystem bezeichnet, da es eine Schicht Abstraction zwischen dem Code und einem Dateisystem hinzufügt. Es bedeutet, dass es einen einheitlichen API für die Ausführung von Dateisystemvorgängen bietet, sodass unabhängig davon, ob das Dateisystem lokal auf einem Festplattensystem oder verteilt und über eine Remotegröße zugänglich ist, unsere Codeaufrufe dieselben Funktionen aufrufen und Flysystem kümmert sich darum.[URL='https://xenforo.com/community/threads/unfurling-urls-emoji-enhancements-and-video-uploads.154986/post-1289243']video uploads functionin XF 2.1 oder höher und Sie sind besorgt über erhöhte Diskspeicheranforderungen, wird dies helfen.Die erforderlichen Dateien zur Verfügung stellenObwohl es möglich ist, die Dateien selbst herunterzuladen und Dinge wie den Autoloader einzustellen, wird es wahrscheinlich besser sein, einfach das Add-On zu herunterladen, das mit diesem Ressourcen angehängt ist. Du kannst[URL='https://xenforo.com/xf2-docs/manual/add-ons/#installing-or-upgrading-an-add-on']install the add-on in the usual fashion.Bevor Sie beginnenWenn Sie diese Einrichtung auf einem bestehenden Site durchführen, müssen Sie die vorhandenen Dateien manuell übertragen. Es gibt dazu eine Sektion am Ende. Während Sie die vorhandenen Dateien übertragen, die Einrichtung und das Testen vornehmen, empfehlen wir Ihnen, den Forum zu schließen.DigitalOcean Spaces einrichtenWir werden dies zuerst behandeln, da es die einfachste Option ist zu bereitstellen. Wenn Sie lieber mit Amazon S3 fortfahren möchten, können Sie sich weiter vorwenden.Amazon S3 Einrichtungsektion unten.
DigitalOcean Cloud[/URL]seite und registrieren oder anmelden.*]Wenn Sie neu bei DigitalOcean sind, können Sie jetzt die Abrechnung einrichten.[Sie werden jetzt eine neue Projekt erstellen können.[*klick den "Anfang mit Räumen verwenden" Link.[Wähle deine Datencenter Region (ich habe Amsterdam ausgewählt).Lassen Sie "Einschränken Sie die Dateiansicht" ausgewählt sein.[*wähle eine einzigartige Name (Ich habe "xftest" gewählt)**klicke "Raum erstellen"[/list]
Jetzt ist der Raum geschaffen, sollten Sie einen Endpunkt-URL haben, ähnlich wie:https://xftest.ams3.digitaloceanspaces.comNotiere dies für später auf.

Wir benötigen jetzt einige API-Kredentials zu erstellen. Dazu müssen Sie folgendermaßen vorgehen:

Dies wird Ihnen einen Schlüssel und eine Geheimnis geben. Notieren Sie sie.Konfigurieren Sie XF, um DigitalOcean Spaces zu verwenden$s3 = function() { return new \Aws\S3\S3Client([credentials[key' => 'ABC',
'secret' => '123',
'region' => 'ams3',
'version' => 'latest',
'endpoint' =>https://ams3.digitaloceanspaces.com, or any other delimiters.
4. Keep proper nouns (brand names, product names) in their original form when appropriate.

CRITICAL INSTRUCTIONS:
1. Nur den übersetzten Text ausgeben. Keine Anführungszeichen, keine Winkelbrüche, keine Formatierungsrahmen verwenden.
2. Erklärvorgänge, Erläuterungen oder vordringende Phrasen nie hinzufügen.
3. Geben Sie den Output nicht in <> oder mit anderen Ausgabedeklariatoren wie [fsAdapters['data'] = function() use($s3) {
return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'data');
};
Finally, we need to ensure that avatar and attachment thumbnail URLs are prepended with the correct URL

PHP:
$config[externalDataUrl'] = function($externalPath, $canonical)
{
returnhttps://xftest.ams3.digitaloceanspaces.com/data/' . $externalPath;
};
At this point, everything should be working in terms of new uploads. Don't be alarmed if you notice that avatars and thumbnails are missing; if you have existing files, they will need to be moved over manually which we'll go through later.

First, we need to test that the configuration works. Simply go and upload a new avatar. The avatar will now be stored and served remotely!

If you check your DigitalOcean Spaces account now, you should see that new folders have been created containing your new avatar:
187981
Es ist erfolgreich! Aber wir sind nur halb da.

Wir müssen jetzt den Support für das internedatadirektori einbeziehen. Allgemein handelt es sich dabei um Anhänge und alles andere, was als „privat“ betrachtet werden sollte. Zurück zu config.php: Der Code, der hinzugefügt werden muss, ist sehr ähnlich: PHP:
$config[fsAdapters['internal-data'] = function() use($s3) {
return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'internal_data');
};
Now try to upload an attachment to a post and, much like before, you should now see additional files and folders in your Spaces file browser. ?Amazon S3 Einrichtung
  1. AWS Management Console[/URL]seite und registrieren oder anmelden.*]Im der "AWS-Dienste"-Seite type "S3", um die "S3-Console" zu erreichen.[*Klicke "Kontouer erstellen".[Wähle einen Namen für die Schachtel (Ich habe xftest ausgewählt.)Wählen Sie eine Region (ich habe EU London gewählt).Akzeptiere alle weiteren Standardoptionen bis zum Erstellen des Containers.[Sie müssen jetzt zur "IAM"-Konsole gehen.[*klicke "Benutzer hinzufügen".[*wähle einen Benutzername (ja, ich verwendete xftest erneut ?).[Setz den Zugriffsart zu "Programmatisch".
  2. Um Berechtigungen festzulegen, klicken Sie auf die Registerkarte "Bestehende Richtlinien anfügen", gefolgt von dem Button "Richtlinie erstellen".
  3. IAM und die verschiedenen Politiken und Berechtigungen können recht erschreckend sein. Wir können es etwas einfacher machen, obwohl Sie möglicherweise andere Anforderungen haben. Auf dieser Seite gibt es eine Registerkarte namens "JSON". Fügen Sie den folgenden Text dort ein, ersetzen Sie YOUR-BUCKET-NAME durch die Buckettaste, die Sie vorher gewählt haben:
Version[Zulassen["s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl",
"s3😛utObject",
"s3😛utObjectAcl",
"s3:ReplicateObject",
"s3😀eleteObject"
],[arn:aws:s3:::YOUR-BUCKET-NAME/*
]
]
*

  1. Dieser wird Ihnen einen Schlüssel und eine Geheimnisschacht geben. Notieren Sie sie her.Konfigurieren Sie XF, um Amazon S3 zu verwenden$s3 = function() {
    return new \Aws\S3\S3Client();[credentials[key' => 'ABC',
    'secrit' => '123'
    ],
    'region' => 'eu-west-2',
    'version' => 'latest',
    'endpunkt' =>https://s3.eu-west-2.amazonaws.comKlasse und Schlüssel sind, was du später beim Erstellen des IAM-Benutzers notiert hast. Der Region kann aus dem S3-Endpunkt-URL geschlossen werden.

    Nun müssen wir den tatsächlichen Flysystem-Anpasser einrichten, um die S3-Klient zu verwenden:
    PHP:
    $config[fsAdapters['data'] = function() use($s3) {
    return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'data');
    };
    Finally, we need to ensure that avatar and attachment thumbnail URLs are prepended with the correct URL:
    PHP:
    $config[externalDataUrl'] = function($externalPath, $canonical)
    {
    returnhttps://xftest.s3.eu-west-2.amazonaws.com/data/' . $externalPath;
    };
    At diesem Punkt sollte alles in Bezug auf neue Uploads funktionieren. Seien Sie nicht erschrocken, wenn Sie bemerken, dass Bilder und Thumbnails fehlen; es werden vorhandene Dateien manuell übertragen müssen, was wir später durchgehen werden.

    Erstens müssen wir sicherstellen, dass die Konfiguration korrekt ist. Fahren Sie einfach mit der Erstellung eines neuen Avatars fort. Der Avatar wird jetzt lokal gespeichert und bereitgestellt!

    Wenn Sie sich nun in Ihrem Bucket-Dateibrowser umsehen, sollten neue Ordner angezeigt werden, die Ihren neuen Avatar enthalten.
    187995
    Es ist erfolgreich! Aber wir sind nur die Hälfte da.

    Wir müssen jetzt den Support für das internedaten Verzeichnis hinzufügen. Allgemein handelt es sich dabei um Anhänge und alles andere, was als „privat“ betrachtet werden sollte. Zurück zu config.php: Der Code zum Hinzufügen ist sehr ähnlich:[fsAdapters['internal-data'] = function() use($s3) {
    return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'internal_data');
    };
    Now try to upload an attachment to a post and, much like before, you should now see additional files and folders in your bucket file browser. ?Besteuerung bestehender Dateien auf DigitalOcean Spaces oder Amazon S3So, Sie haben jetzt remote gehostete Dateien. Zumindest seitdem. Aber was mit all den vorhandenen Dateien?

    Glücklicherweise gibt es mehrere Möglichkeiten, mit Spaces und S3 umzugehen, um das Übertragen Ihrer bestehenden Inhalte sehr einfach durchzuführen. Obwohl dies eine einmalige Operation ist, hängt davon ab, wie viele und wie groß die Dateien sind, es zu einer beträchtlichen Zeit dauern könnte.

    Es gibt einige Möglichkeiten, diesen Prozess zu verwalten, aber argwöhnlichste Lösung ist es, ein Tool mit dem Namens3cmdwelche ist ein beliebtes cross-platformes Kommandozeilenwerkzeug für die Verwaltung von S3 und S3-kompatiblen Objektkonten.

    Es sollte möglich sein, unabhängig davon, ob Sie Spaces oder S3 verwenden, das s3cmd Werkzeug auf Ihrem Server zu installieren und die Befehle auszuführen, um die Dateien in ihr neues Heim zu verschieben.

    Anstatt es noch einmal zu erweitern, werde ich Ihnen mit dem folgenden Leitfaden von DigitalOcean beibringen, wie Sie Ihre bestehenden Dateien mithilfe von s3cmd zu migrieren.

    s3cmd 2.x Setup :: DigitalOcean Product Documentation

    s3cmd ist ein beliebtes cross-platformes Kommandozeilenwerkzeug für die Verwaltung von S3- und S3-kompatiblen Objektaboospeqten. Um s3cmd zu verwenden, benötigen Sie: s3cmd Version 2.0.0+ oder höher. Sie können Ihre Version mit s3cmd --version überprüfen. Paketmanagertypen könnten veraltet sein, daher empfehlen wir die Nutzung von s3cmd...www.digitalocean.comNotiz:Wenn Sie Ihre vorhandenen Datenfiles übernehmen, müssen sie öffentlich gemacht werden. Dies können Sie durch die ACL auf öffentlich festlegen während Sie kopieren.

    Examples of s3cmd 2.x Usage with DigitalOcean Spaces :: DigitalOcean Documentation

    Beispiele für s3cmd-Befehle für häufige Aktionen mit Spaces wie Dateiupload und -verwaltung, Berechtigungen setzen und Verschlüsselung.www.digitalocean.com
Author
axtona
Views
594
Extension type
zip
File size
712.4 KB
First release
Last update
Ratings 0.00 star(s) 0 ratings
Link defekt? Send message an das NP-Team – wir helfen dir schnell!
Unterstütze den Entwickler Wenn du mit dem Test zufrieden bist oder mit deinem Projekt erfolgreich Geld verdient hast, klicke auf den Button Mehr Informationen, um den Entwickler durch einen Kauf zu unterstützen.

Latest updates

  1. 2.4.1 - changelog
    Due to an issue, we are releasing a new version of the add-on to support customers running XenForo 2.2 and older versions of PHP. This is the...
  2. 2.4.0 - changelog
    This "add-on" is no longer required for XenForo 2.3 and should be uninstalled XenForo 2.3 ships with a subset of the Amazon S3 SDK for PHP. This...
  3. V2.3.0 - V2.3.0
    This update is a very minor maintenance release. As well as including the latest version of the Amazon AWS SDK (3.231.7) this is now a much...

More resources from axtona

Using Composer Packages A
XenForo v2 uses Composer behind the scenes to include certain packages used by the core software
Eggy SEO Autopilot A
Automated auditing, metadata, structured data, Google Search Console, IndexNow
Cool Timeline Pro - WordPress-Timeline-Plugin A
ein fortgeschrittener WordPress Timeline-Plugin, der deinen Lebensverlauf zeigt

Similar resources

 Amazon-parser A
Amazon-Partner-ID-zu-Links-in-Nachricht-hinzufügen
 Amazon Parser alles A
Fügt Amazon-Partner-ID zu allen Links in allen Nachrichten hinzu.
Back
Top