Я искал, но не смог найти базового обзора о том, как перенести наши загрузки с DigitalOcean в S3. Несколько месяцев назад я успешно настроил S3 для новых загрузок и резервных копий. Теперь я хочу завершить перенос наших загрузок (~1,4 ГБ) в S3.
Это было преобразование из SMF2 с самого начала. У нас сейчас две папки с загрузками: одна в корне в smf2, другая в /var/discourse. Каталог SMF2 занимает 2,8 ГБ. Предполагаю, что здесь может быть два шага? Нужно ли выполнять отдельные действия для переноса из каталога SMF2 и из каталога /var/discourse?
Я наткнулся на rake to s3, но не смог найти руководства, кроме множества сообщений людей о возникших ошибках и предложениях по их исправлению. Есть ли какое-то руководство?
Пожалуйста, прочитайте эту статью — она должна помочь вам настроить задачу.
Обратите особое внимание на раздел конфигурации для секции hooks и настройте бакет с помощью переменных окружения, чтобы избежать проблем, о которых вы уже читали.
Единственное, о чём я не знаю, — это CDN. Вижу, что можно использовать Amazon CloudFront. Думаю, его не настраивали при выполнении предыдущих шагов по настройке S3. Я поищу руководство, как это сделать.
Вы можете настроить CloudFront, используя свой бакет для загрузок в качестве источника, а после его запуска — установить его в качестве ссылки CDN S3. Это всё, что нужно сделать.
Загрузка в S3 должна происходить во время пересборки. Вы должны иметь возможность просматривать ресурсы веб-сайта в бакетах S3, и все ресурсы сайта должны загружаться из предоставленной ссылки S3 или CDN. Если это не работает, значит, определенно что-то не так с вашей конфигурацией. Возникают ли у вас какие-либо ошибки?
Я подозреваю, что что-то пошло не так. Мое восстановление заняло недостаточно времени, чтобы загрузить несколько гигабайт данных в процессе.
РЕДАКТИРОВАНИЕ:
Все загрузки, сделанные несколько месяцев назад, уже шли в S3. Я хочу переместить только устаревшие данные, оставшиеся до перехода на S3.
Имейте в виду, что серверы работают на порядки быстрее, чем ваше широкополосное подключение. Загрузка изображений с вашего хостинга в S3 не должна занимать более нескольких минут. Однако вам следует внимательно изучить журнал восстановления, чтобы подтвердить, произошла ли загрузка.
В качестве альтернативы вы можете запустить ./discourse-doctor, чтобы сгенерировать журнал для проверки.
Единственное, на что я обратил внимание, выделено жирным в разделе DNS.
> root@discourse:/var/discourse# ./discourse-doctor
> DISCOURSE DOCTOR Thu May 14 11:35:17 UTC 2020
> OS: Linux discourse 4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>
>
> Found containers/app.yml
>
> ==================== YML SETTINGS ====================
> DISCOURSE_HOSTNAME=
> SMTP_ADDRESS=
> DEVELOPER_EMAILS=
> SMTP_PASSWORD=
> SMTP_PORT=
> SMTP_USER_NAME=
> LETSENCRYPT_ACCOUNT_EMAIL=
>
> ==================== DOCKER INFO ====================
> DOCKER VERSION: Docker version 18.09.6, build 481bc77
>
> DOCKER PROCESSES (docker ps -a)
>
> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
> db900fc77ebe local_discourse/app "/sbin/boot" 15 hours ago Up 15 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
>
> db900fc77ebe local_discourse/app "/sbin/boot" 15 hours ago Up 15 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
>
> Discourse container app is running
>
>
> ==================== PLUGINS ====================
> exec: {cd: $home/plugins, cmd: ['git clone https://github.com/discourse/docker_manager.git', 'git clone https://github.com/procourse/procourse-static-pages.git', 'git clone https://github.com/discourse/discourse-bbcode.git', 'git clone https://github.com/discourse/discourse-adplugin.git']}
>
> No non-official plugins detected.
>
> See https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb for the official list.
>
> ========================================
> Discourse version at : NOT FOUND
> Discourse version at localhost: Discourse 2.5.0.beta4
**> ==================== DNS PROBLEM ====================**
**> This server reports Discourse 2.5.0.beta4 , but reports NOT FOUND.**
**> This suggests that you have a DNS problem or that an intermediate proxy is to blame.**
**> If you are using Cloudflare, or a CDN, it may be improperly configured.**
>
>
> ==================== MEMORY INFORMATION ====================
> RAM (MB): 1008
>
> total used free shared buff/cache available
> Mem: 985 636 69 121 279 88
> Swap: 2047 775 1272
>
> ==================== DISK SPACE CHECK ====================
> ---------- OS Disk Space ----------
> Filesystem Size Used Avail Use% Mounted on
> /dev/vda1 25G 20G 4.8G 81% /
>
> ---------- Container Disk Space ----------
> Filesystem Size Used Avail Use% Mounted on
> overlay 25G 20G 4.8G 81% /
> /dev/vda1 25G 20G 4.8G 81% /shared
> /dev/vda1 25G 20G 4.8G 81% /var/log
>
> ==================== DISK INFORMATION ====================
> Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors
> Units: sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disklabel type: gpt
> Disk identifier: 02CBFCD2-7495-4A08-A11B-28E7D3872FAA
>
> Device Start End Sectors Size Type
> /dev/vda1 227328 52428766 52201439 24.9G Linux filesystem
> /dev/vda14 2048 10239 8192 4M BIOS boot
> /dev/vda15 10240 227327 217088 106M Microsoft basic data
>
> Partition table entries are not in disk order.
>
> ==================== END DISK INFORMATION ====================
>
> ==================== MAIL TEST ====================
> For a robust test, get an address from http://www.mail-tester.com/
> Or just send a test message to yourself.
> Email address for mail test? ('n' to skip) []: n
> Mail test skipped.
> Replacing: SMTP_PASSWORD
> Replacing: LETSENCRYPT_ACCOUNT_EMAIL
> Replacing: DEVELOPER_EMAILS
> Replacing: DISCOURSE_DB_PASSWORD
> Replacing: Sending mail to
>
> ==================== DONE! ====================
> Would you like to serve a publicly available version of this file? (Y/n)n
> root@discourse:/var/discourse#
Можете ли вы сгенерировать общедоступную версию? Вы можете поделиться ссылкой в личных сообщениях, возможно, я смогу проверить, действительно ли миграция на S3 прошла успешно или по какой-то причине не удалась?