Ich versuche, "bundle exec rake s3:upload_assets" als root auszuführen, und erhalte die folgende Fehlermeldung: Could not locate Gemfile or .bundle/ directory.
Ich habe auch versucht, es ohne root auszuführen, mit "sudo -E -u discourse bundle exec rake s3:upload_assets", und es gab die folgende Fehlermeldung: sudo: unknown user discourse\nsudo: error initializing audit plugin sudoers_audit
Ich habe beide Befehle im folgenden Verzeichnis ausgeführt: /var/discourse
Dies ist eine normale Installation, ich verwende kein Docker oder Ähnliches.
Wie kann ich das beheben, damit ich dies ausführen kann?
Danke! Das hat mich weitergebracht, ich bin jetzt bei dieser Fehlermeldung:
root@redacted:/var/www/discourse# sudo -E -u discourse bundle exec rake s3:upload_assets
/root ist nicht beschreibbar.
Bundler wird `/tmp/bundler20250409-510203-w6snye510203' als Ihr Home-Verzeichnis temporär verwenden.
FEHLER: Stellen Sie sicher, dass S3 in config/discourse.conf oder Umgebungsvariablen konfiguriert ist.
Ich habe alles in den Discourse-Seiteneinstellungen konfiguriert. Ich benutze kein Docker, daher benötige ich keine Umgebungsvariablen?
Ich habe versucht, die Umgebungsvariablen in app.yml hinzuzufügen, neu zu erstellen und die App erneut aufzurufen und den Befehl auszuführen, und er gibt Folgendes aus:
`/root` ist nicht beschreibbar.
Bundler wird `/tmp/bundler20250409-1393-48ek5u1393` als Ihr Home-Verzeichnis temporär verwenden.
CORS-Regeln werden installiert...
Versuch, ASSETS S3 CORS-Regelwerk im Bucket biohacking-forum anzuwenden.
rake fehlgeschlagen!
Seahorse::Client::NetworkingError: Leerer oder unvollständiger Antwortkörper (Seahorse::Client::NetworkingError)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/request_callback.rb:89:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in `in_span'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in `span_wrapper'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:6359:in `get_bucket_cors'
/var/www/discourse/lib/s3_helper.rb:401:in `fetch_bucket_cors_rules'
/var/www/discourse/lib/s3_helper.rb:168:in `ensure_cors!'
/var/www/discourse/lib/s3_cors_rulesets.rb:60:in `sync'
/var/www/discourse/lib/tasks/s3.rake:183:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => s3:upload_assets => s3:ensure_cors_rules
(Trace mit --trace ausführen, um den vollständigen Trace anzuzeigen)
Alle S3-Variablen sollten in versteckte Einstellungen verschoben werden, da die Konfiguration in den Einstellungen meist nichts Gutes bewirken kann.
Entschuldigung, und ich habe vergessen, dass Sie Docker nicht verwenden. Aber ja, Sie müssen sie immer noch in den ENV-Variablen festlegen. Ich mache das in meiner Entwicklungsumgebung, um Datenbanken von S3 wiederherzustellen.
Wenn Sie dies nicht für eine Entwicklungsumgebung tun, machen Sie höchstwahrscheinlich einen großen Fehler.
Ich habe es behoben, indem ich Folgendes getan habe – es gab zwei Fehler.
Erstens habe ich den zweiten Fehler behoben, indem ich Folgendes getan habe:
rails c
Upload.find(386).destroy!
exit
Dies hat den beschädigten Beitrag behoben (fehlerhafte Formatierung des Textes oder so etwas).
Dann kamen die roten Fehler auf dem Bildschirm von der Verwendung der zufälligen Subdomain (von Cloudflare bereitgestellt) und dem Hochladen darauf. Ich musste die Dateien auf die neue Domain hochladen (die meine verbundene Domain enthält).
Dann wurde das Forum richtig geladen und wenn man mit der rechten Maustaste auf Bilder klickt und sie in einem neuen Tab öffnet, sieht man, dass sie auf R2 gehostet werden. Dann habe ich ein Backup gemacht.
Dadurch wurde der entsprechende Speicherplatz der Dateien freigegeben (beachten Sie, dass ich immer noch ein lokales Backup beider Dateien (auf OS-Ebene) und auf Discourse-Ebene vor der Migration habe).