Rendi s3_region un valore stringa

Quali potrebbero essere i motivi per cui questa variabile è una lista limitata? Per cosa?

irb(main):007:0> SiteSetting.s3_region='fr-par'
Traceback (most recent call last):
        5: from (irb):7
        4: from lib/site_setting_extension.rb:548:in `block in setup_methods'
        3: from lib/site_setting_extension.rb:368:in `add_override!'
        2: from lib/site_settings/type_supervisor.rb:149:in `to_db_value'
        1: from lib/site_settings/type_supervisor.rb:207:in `validate_value'
Discourse::InvalidParameters (Valore non valido `fr-par` per `s3_region`)

Scaleway ha le sue regioni.

Puoi impostare valori diversi tramite variabili d’ambiente come descritto in Configurare un provider di archiviazione oggetti compatibile con S3 per i caricamenti

1 Mi Piace

Pensi che non l’abbia fatto?

Se il valore consentito di una variabile è strettamente limitato nello script secondo l’elenco di quelli possibili, sei sicuro che questo aiuterà?

Sì, ne sono sicuro perché ho scritto la guida Scaleway su Configure an S3 compatible object storage provider for uploads e l’ho testata funzionante con un’installazione di produzione.

1 Mi Piace

Fantastico! Prova con 2.9.0.Beta9 :slight_smile: Spiega perché non puoi cambiare la variabile tramite la console?

\u003e Discourse::InvalidParameters (Valore non valido fr-par per s3_region)

InvalidParameters

Capito? Valore non valido fr-par per s3_region - Parametri non validi! Ok?

Non dovresti cambiarla dalla console, perché dovresti seguire Configure an S3 compatible object storage provider for uploads e impostarla come variabili d’ambiente :slightly_smiling_face:

2 Mi Piace

Dici cose strane :exploding_head:

  1. L’ho fatto prima di pubblicare qui originariamente.
  2. Questo non funziona
  3. Ho provato DIRETTAMENTE tramite la console
  4. Questo non funziona

@Falco Ti fornirò un bucket e un token di accesso su Scaleway. Creerò ora un server, imposterò un forum lì e ti darò accesso. Se ci riesco, mi scuserò :smiling_face_with_three_hearts: :kissing_heart:

Nel mezzo della giornata eliminerò il server. Fino ad allora, l’accesso è mantenuto.

Ovviamente - le impostazioni suggerite non funzionano

Basta impostare l’endpoint.

Using Scaleway s3-compatible object storage - #19 by Falco.

MODIFICA: Oh, in qualche modo mi ero perso tutto l’inizio di questo argomento. . .

Molte altre persone hanno seguito la guida e funziona.

1 Mi Piace

nano /var/discourse/containers/app.yml

  DISCOURSE_S3_REGION: "fr-par"
  DISCOURSE_S3_ACCESS_KEY_ID: "SCW*******WYCGN"
  DISCOURSE_S3_SECRET_ACCESS_KEY: "***************"
  DISCOURSE_BACKUP_LOCATION: "s3"
  DISCOURSE_S3_BACKUP_BUCKET: "test-forum-falco-discourse-s3-region"
  DISCOURSE_S3_ENDPOINT: "https://s3.fr-par.scw.cloud"

./launcher rebuild app

Removing old container
+ /usr/bin/docker rm app
app

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_S3_REGION=fr-par -e DISCOURSE_S3_ACCESS_KEY_ID=SCWDM************GN -e DISCOURSE_S3_SECRET_ACCESS_KEY=*********************** -e DISCOURSE_BACKUP_LOCATION=s3 -e DISCOURSE_S3_BACKUP_BUCKET=test-forum-falco-discourse-s3-region -e DISCOURSE_S3_ENDPOINT=https://s3.fr-par.scw.cloud -e DISCOURSE_HOSTNAME=********** -e DISCOURSE_DEVELOPER_EMAILS=***************** -e DISCOURSE_SMTP_ADDRESS=in-v3.mailjet.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=************************ -e DISCOURSE_SMTP_PASSWORD=**************************** -e DISCOURSE_NOTIFICATION_EMAIL=************************* -e LETSENCRYPT_ACCOUNT_EMAIL=me@example.com -h scw-jolly-merkle-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:53:96:b4:7e:e7 local_discourse/app /sbin/boot
e558fe6dbde62177ae4f4171fd1099f1844321c80f59cf4c3c0d4c56abfa9412

*** - secrets

./launcher enter app

rake site_settings:export

---
title: Discourse1
contact_email: *************************
default_dark_mode_color_scheme_id: '1'
invite_only: 'true'
login_required: 'true'
default_trust_level: '1'
allowed_iframes: https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/|https://www.instagram.com|https://*************************/discobot/certificate.svg
default_email_digest_frequency: '1440'

Non funziona ancora

Le variabili ENV impostate in app.yaml non si rifletteranno necessariamente su rake site_settings:export, non ho idea del perché tu l’abbia dato per scontato.

Ora che sembra tu abbia impostato tutte le variabili ENV secondo la guida su Configurare un provider di archiviazione oggetti compatibile con S3 per i caricamenti, cosa succede quando provi a caricare un’immagine in un post? Qualcosa di interessante nella pagina /logs?

1 Mi Piace

Ciao.

Ok. Non dovrebbero essere visualizzati anche nelle impostazioni del forum? Hai chiaramente un approccio interessante e speciale alla programmazione. Non dovrebbero esserci davvero?

Mi scusi. Ora funziona :smiling_face_with_three_hearts: :kissing_heart:

  • Mancano campi nelle impostazioni nell’interfaccia web
  • site_settings:export - mancano campi
  • SiteSetting.s3_region=‘fr-par’ - Errore “Valore non valido fr-par per s3_region

Ma

  • funziona
  • Non capisco perché ho deciso questo

Grazie. Mi dispiace :wink: