s3_region을 문자열 값으로 설정

이 변수를 제한된 목록으로 만든 이유는 무엇일까요? 어떤 목적을 위한 것인가요?

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 (Invalid value `fr-par` for `s3_region`)

Scaleway에는 자체 지역(regions)이 있습니다.

상기 업로드용 S3 호환 객체 저장소 프로바이더 구성에 따라 ENV 변수를 통해 서로 다른 값을 설정할 수 있습니다.

제가 안 그랬을 거라고 생각했나요?

스크립트 내에서 변수의 허용 값이 가능한 값 목록에 따라 엄격하게 제한된다면, 이것이 도움이 될 것이라고 확신하십니까?

네, 확신합니다. 제가 Configure an S3 compatible object storage provider for uploads 에서 Scaleway 가이드를 작성했고, 프로덕션 설치 환경에서 정상적으로 작동하는지 테스트했기 때문입니다.

멋지네요! 2.9.0.Beta9에서 시도해 보세요 :slight_smile: 콘솔을 통해 변수를 변경할 수 없는 이유를 설명해 주시겠어요?

Discourse::InvalidParameters (Invalid value fr-par for s3_region)

InvalidParameters

이해되시나요? s3_region의 잘못된 값 fr-par - 잘못된 매개변수! 그렇죠?

콘솔에서 변경해서는 안 되며, Configure an S3 compatible object storage provider for uploads 링크를 따라 환경 변수로 설정해야 합니다 :slightly_smiling_face:

이상한 말을 하시네요 :exploding_head:

  1. 저는 원래 여기에 게시하기 전에 이미 이렇게 했습니다.
  2. 이 방법은 작동하지 않습니다.
  3. 저는 콘솔을 통해 직접 시도했습니다.
  4. 이 방법도 작동하지 않습니다.

@Falco Scaleway에서 버킷과 액세스 토큰을 제공하겠습니다. 이제 서버를 생성하고 거기서 포럼을 설정한 후 액세스 권한을 부여하겠습니다. 성공하면 사과하겠습니다 :smiling_face_with_three_hearts: :kissing_heart:

낮 12시에 서버를 삭제할 예정입니다. 그 전까지는 접속이 유지됩니다.

분명히 - 제안된 설정이 작동하지 않습니다

단순히 엔드포인트를 설정하면 됩니다.

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

수정: 어쩐 일인지 이 토픽의 초반 부분이 보이지 않았네요. . .

많은 다른 분들이 가이드를 따랐고 실제로 작동합니다.

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

*** - 비밀 정보

./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'

여전히 작동하지 않습니다

app.yaml에서 설정한 ENV 변수가 rake site_settings:export에 반드시 반영되는 것은 아닙니다. 왜 그렇게 가정하셨는지 알 수 없습니다.

지금 업로드를 위한 S3 호환 객체 스토리지 프로바이더 구성 가이드에 따라 모든 ENV 변수를 설정한 것 같은데, 게시물에 이미지를 업로드하면 어떻게 되나요? /logs 페이지에서 흥미로운 내용이 보이나요?

안녕하세요.

알겠습니다. 포럼 설정에도 표시되어야 하지 않나요? 프로그래밍에 대해 분명히 독특하고 특별한 접근 방식을 가지고 계신 것 같습니다. 정말로 거기에도 있어야 하지 않나요?

실례합니다. 이제 작동합니다 :smiling_face_with_three_hearts: :kissing_heart:

  • 웹 인터페이스에 설정 필드가 없습니다
  • site_settings:export - 필드가 없습니다
  • SiteSetting.s3_region=‘fr-par’ - 오류 “s3_region에 대해 fr-par은(는) 잘못된 값입니다”

하지만

  • 작동합니다
  • 왜 그렇게 결정했는지는 이해하지 못했습니다

감사합니다. 죄송합니다 :wink: