Часто задаваемые вопросы

Общие вопросы

Я положил деньги на баланс Облачного хранилища. Что делать дальше? Как начать загружать файлы?

Загрузка файлов в Облачное хранилище будет доступна после создания первого контейнера. О том, как создать контейнер и загрузить в него файлы читайте в статье Создание и настройка контейнера.

Есть ли решения для резервного копирования и хранения бэкапов?

Вы можете использовать наше Облачное хранилище для хранения резервных копий. Инструкции по настройке резервного копирования в Облачном хранилище:

Как переименовать контейнер?

В Облачном хранилище переименование контейнера после его создания не возможно. Для переименования удалите текущий контейнер и создайте новый с требуемым именем.

Не получается удалить контейнер, так как кнопка удаления недоступна

Сначала удалите все файлы внутри контейнера, а затем удалите сам контейнер при помощи соответствующей кнопки в панели управления. Кнопка удаления будет неактивна до тех пор, пока все файлы внутри контейнера не будут удалены.

Не удаляются файлы согласно установленному лимиту

Настройки лимитов в контейнере применяются только для новых файлов и не влияют на файлы, которые были загружены ранее. То есть на файлы, которые были загружены до установки лимита, данные правила не будут распространяться. При необходимости можно удалить их вручную. Для всех последующих файлов, загруженных в контейнер после установки лимита, будет применено автоматическое удаление согласно настройкам в панели управления.

Я изменил в панели заголовок Cache-Control, а он не применился

Заголовок применится автоматически после истечения текущего времени кэширования. Файлы без заголовка Cache-Control кэшируются на срок от суток до одной недели. Для применения заголовка до этого срока, можно загрузить файл повторно.

Как перенести/изменить права доступа/что-то сделать с “папкой”?

Облачное хранилище является объектным и, в связи с этим, такое понятие как “папка” отсутствует - есть только контейнеры и объекты в них. Все папки являются виртуальными и нужны для удобного отображения файлов в панели управления и различных клиентах. У всех объектов, находящихся в “папках”, в имени присутствует слэш “/”. Например, у файла file.txt, находящегося в “папке” logs в контейнере archive, будет следующее имя: logs/file.txt. Для работы с API необходимо использовать полное имя файла. Если требуется через API создать объект, который будет отображаться в панели как “папка”:

  • добавьте к имени объекта название папки через слэш (как в примере выше);
  • создайте объект нулевого размера с Content-Type: application/directory.

Хочу через API загружать (но не удалять!) файлы по паролю, как sendmefile с паролем

Общий алгоритм для загрузки файлов в публичный контейнер через API без использования данных авторизации:

  1. Создайте публичный контейнер.
  2. В настройках контейнера укажите Ссылка для загрузки файловПростая загрузка файловДоступ по паролю.
  3. Для загрузки используйте следующую команду:

    curl -i -XPUT 'https://xxxxx.selcdn.ru/container/upload?_ssuk=MyPaSSword' -T /path/to/local/file -H "X-Filename: file_name_in_storage"

    В качестве пароля “MyPaSSword” используется пароль, установленный в п.2.

Как получить листинг контейнера? Как посмотреть размер всех файлов в контейнере?

Используйте следующие API-запросы: 1. Список всех контейнеров и общий размер хранилища (поле x-account-bytes-used):

curl -i "https://api.selcdn.ru/v1/SEL_XXXXX" -H "X-Auth-Token: $token"
  1. Список всех контейнеров, с указанием размера:

    curl "https://api.selcdn.ru/v1/SEL_XXXXX?format=json" -H "X-Auth-Token: $token" | jq .
  2. Список всех объектов в контейнере, с указанием размера:

    curl "https://api.selcdn.ru/v1/SEL_XXXXX/container?format=json" -H "X-Auth-Token: $token" | jq .
  3. Предыдущий запрос отобразит только первые 10000 объектов. Если контейнер большего размера, то нужно также использовать параметр marker (указав название последнего объекта, полученного в п. 3:

    curl "https://api.selcdn.ru/v1/SEL_XXXXX/container?format=json&marker=object_name" -H "X-Auth-Token: $token" | jq .

    , где “XXXXX” — это номер аккаунта, “$token” — токен основного пользователя, “container” — название контейнера.

В чем отличие нашего Облачного хранилища от Google Drive или Dropbox?

Облачное (объектное) хранилище в основном ориентировано на разработчиков и профессионалов, основной деятельностью которых является создание различных интернет ресурсов, платформ, магазинов, игр, а также для хранения огромных объемов неструктурированных данных, в том числе резервных копий, архивов, данных IoT и аналитики.

Наши клиенты не ограничены по объему хранения и могут разместить у нас от 1 Гб до десятков Экзабайт и при этом оплачивать только тот объем, который они хранят. У нас есть удобный графический интерфейс, однако основным инструментом для работы являются программные интерфейсы API.

Google Drive, Dropbox и другие похожие решения являются коллаборационными инструментами для совместной работы команд, а также для хранения персональных данных. С данными пользователи в основном работают напрямую, как они привыкли делать в обычных файловых системах, а функциональность данных решений, в том числе и в API, подходит в основном для вышеуказанных задач. Поэтому если вашей текущей задачей является хранение небольших объемов персональных данных и обмен ими с другими пользователями — подойдет файловые хранилища Google Drive, Dropbox и другие. Если нужно решение для своего интернет-проекта, хранения резервных копий или больших объемов данных — лучше воспользоваться нашим Облачным хранилищем.

Удаленные (потерянные файлы)

Я удалил файлы (или сработал X-Delete-At; или делал sync и перепутал цель и источник). Можно ли восстановить эти файлы?

Восстановление невозможно, объекты удаляются безвозвратно. Для избежания подобных ситуаций рекомендуется включить версионирование контейнера. О том, как включить версионирование читайте в статье Создание и настройка контейнера.

Не оплатил Хранилище и у меня заблокировались/удалились файлы. Можно что-то сделать?

При блокировке аккаунта за неуплату контейнеры помечаются на удаление, однако, фактическое удаление будет произведено только по истечении 14 календарных дней с того момента, когда средства на балансе закончились. В случае, если прошло более 14 календарных дней — данные будут удалены безвозвратно. Если прошло менее 14 календарных дней, пополните баланс Хранилища. После пополнения баланса услуги блокировка с аккаунта снимается автоматически в течение 10-15 минут.

HTTPS

Возможно ли использовать протокол HTTPS для раздачи контента?

Для реализации раздачи контента по протоколу HTTPS возможно 2 варианта:

  • при использовании ссылок в зоне xxxxxx.selcdn.ru можно прикрепить к контейнеру собственный сертификат или использовать наш сертификат (https://xxxxxx.selcdn.ru);
  • можно использовать CDN Selectel для раздачи контента из Облачного хранилища с использованием собственного или shared-сертификата.

Для раздачи контента с использованием CDN Akamai можно использовать только shared-сертификат. Ссылки на безопасный домен будут выглядеть как customername-a.akamaihd.net, где -a.akamaihd.net — неизменная сервисная часть домена, всегда начинается с дефиса, customername — ограничено 16-ю символами и может содержать только латинские буквы и цифры. Подробнее о подключении CDN к Облачному хранилищу читайте в статье Создание и настройка CDN-ресурса.

Как сделать редирект http -> https?

На данный момент такой функционал не реализован в Облачном хранилище.

SSL

При загрузке сертификата отображается ошибка/сертификат не загружается

Вероятно, при создании pem-файла, сертификаты были добавлены в неправильной последовательности. Порядок сборки сертификата как правило следующий:

-----BEGIN RSA PRIVATE KEY-----
(Your Private Key: your_domain_name.key)
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate: your_domain_name.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate: Intermediate.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root certificate: RootCA.crt)
-----END CERTIFICATE-----

У меня закончился старый сертификат и я загрузил новый. Почему он не работает (отдается старый)?

Удалите старый (просроченный) сертификат через панель управления. После этого проверьте работу домена либо в режиме инкогнито, либо в другом браузере.

Хочу загрузить свой wildcard ssl-сертификат

Облачное хранилище поддерживает работу с wildcard-сертификатами.

Обратите внимание, что данный вид сертификатов может использоваться только для доменов на один уровень ниже того, для которого выдан сам сертификат. Например, если загрузить сертификат х.domain.ru, то для www.domain.ru и home.domain.ru он будет использоваться, а для user.home.domain.ru — уже нет. Это особенность именно wildcard-сертификатов, а не Хранилища.

Тарификация

Баланс хранилища пополнен, но нет доступа к файлам

После пополнения баланса Хранилища блокировка с аккаунта снимается автоматически в течение 10-15 минут. В случае, если в течение указанного времени доступ к Хранилищу не восстановится или баланс был пополнен после 14 календарных дней с момента блокировки, создайте тикет.

Как осуществляется тарификация в Облачном хранилище?

Облачное хранилище оплачивается на почасовой основе. Стоимость зависит от реального объема потребленных ресурсов. Формула расчета цены состоит из трех параметров: объем хранения, исходящий трафик и число запросов API. Более подробная информация доступна на сайте.

Тарифицируется ли загрузка файлов через FTP (аналогично загрузке по API)?

Да, FTP является прослойкой между клиентом и API, то есть при использовании FTP будут генерироваться и тарифицироваться запросы к API.

Качать из Хранилища на ваши серверы - дешевле?

При скачивании из Хранилища с наших IP-адресов, не тарифицируется исходящий трафик именно со стороны Хранилища. Трафик для выделенных серверов, Облачной платформы и так далее, а также запросы к API Хранилища тарифицируются.

Сторонние клиенты (rclone, duck и т.п.)

Какие клиенты посоветуете для работы с хранилищем?

  • Python-swiftclient
  • Rclone
  • Cyberduck

Не могу загрузить или удалить (“большую” папку/много файлов) через панель управления

Для работы с большим количеством файлов в облачном хранилище рекомендуется осуществлять подключение по SWIFT-протоколу, например, при помощи утилиты rclone, подробнее о которой читайте в статье Rclone: rsync для облаков. Рекомендации по установке и первичной настройке rclone читайте в статье базы знаний Резервное копирование с помощью Облачного хранилища. Если для работы с Хранилищем предпочтительно использовать графический интерфейс, воспользуйтесь файловым менеджером Cyberduck. Для работы с Хранилищем через SWIFT можно использовать pythonswift-client.

Примеры работы с утилитой SWIFT:

  • Листинг всего содержимого контейнера:

    swift -A https://api.selcdn.ru/auth/v1.0 -U ВАШ_ЛОГИН -K ВАШ_ПАРОЛЬ list название_контейнера
  • Удаление контейнера:

    swift -A https://api.selcdn.ru/auth/v1.0 -U ВАШ_ЛОГИН -K ВАШ_ПАРОЛЬ delete название_контейнера
  • Удаление папки внутри контейнера

    swift -A https://api.selcdn.ru/auth/v1.0 -U ВАШ_ЛОГИН -K ВАШ_ПАРОЛЬ delete название_контейнера -p папка

Не удается загрузить файл большого размера (~ больше 5 Гб) через панель управления

Для загрузки файлов большого размера в Облачное хранилище рекомендуется использовать утилиту rclone, подробнее о которой читайте в статье Rclone: rsync для облаков. Рекомендации по установке и первичной настройке rclone читайте в статье базы знаний Резервное копирование с помощью Облачного хранилища. Процедура загрузки файлов большого размера проходит следующим образом: файл делится на сегменты, которые загружаются в отдельный контейнер. Задать размер сегмента можно при помощи параметра --swift-chunk-size.

Обратите внимание! Каждый сегмент в данном случае будет интерпретирован как отдельный PUT-запрос к хранилищу, в связи с чем настоятельно рекомендуем ознакомиться с действующей тарификацией на сайте. При использовании посегментной загрузки ограничение на размер загружаемого файла для rclone отсутствует.

Не удается загрузить файл большого размера через rclone

Для загрузки крупных файлов rclone использует вспомогательный контейнер, на создание которого у дополнительного пользователя по умолчанию нет прав. В данном случае:

  • либо заранее создате этот контейнер и дайте дополнительному пользователю права на чтение/запись;
  • либо загружайте крупные файлы, используя данные учетной записи основного пользователя.

Вспомогательный контейнер должен быть вида ContainerName_segments, где ContainerName — имя контейнера, куда загружается файл.

В случае, если загрузка файла осуществляется от основного пользователя, то попробуйте выполнить загрузку при помощи следующей команды:

rclone --dump headers --swift-chunk-size=100M --low-level-retries=10 --retries=1 --log-level=DEBUG --log-file=rclone.log copy bigfile.dummy Selectel:rclone_big_file

При повторном возникновении ошибки при загрузке создайте тикет, к которому прикрепите лог-файл.

Можно ли подключить Хранилище как локальную папку?

Можно воспользоваться утилитой Cloudfuse (описание работы с которой и пример настройки). Примечание: наше Хранилище — объектное и работает по протоколу http, поэтому мы не рекомендуем его использовать как блочное устройство с файловой системой.

Не могу скачать/загрузить файл большого размера при помощи cyberduck в Windows

Вероятно, в имени файла содержится кириллица (Cyberduck некорректно работает с кириллицей). Используйте в именах файлов латинские буквы или воспользуйтесь другим клиентом (например, rclone).

Возможно ли использовать Облачное хранилище как NFS?

Использовать Облачное хранилище в качестве NFS нельзя.

S3

Поддерживает ли Облачное хранилище Amazon S3 ?

Облачное хранилище является S3-совместимым. В нашей реализации есть некоторые особенности:

  • запросы к объектам вида path style request URI;
  • v2 авторизация через заголовок Authorization;
  • v4 авторизация через заголовок Authorization или query-параметры;
  • домен s3.selcdn.ru;
  • отсутствует поддержка acl;
  • отсутствует поддержка chunked upload (transferring payload in multiple chunks).

FTP

Как подключиться по FTP?

Подключение к хранилищу по FTP осуществляется по адресу ftp://ftp.selcdn.ru. Логин и пароль для подключения доступны на вкладке Пользователи в панели управления. Для корректной работы в настройках FTP-клиента включите пассивный режим работы, выберите бинарный режим передачи данных и установите кодировку UTF-8. Также можно использовать режим explicit TLS, чтобы избежать передачи паролей в открытом виде. Более подробная информация о том, как подключится по FTP к облачному хранилищу, доступна в нашем блоге в статье Облачное хранилище: доступ по FTP.

Не подходит пароль при подключении по FTP

Подключение к Хранилищу по FTP осуществляется по адресу ftp://ftp.selcdn.ru. Логин и пароль для подключения доступны на вкладке Пользователи в панели управления.

Не удается (создать папку/загрузить файлы) по FTP

Проверьте текущие настройки используемого FTP-клиента согласно рекомендациям. Если загрузка осуществляется от дополнительного пользователя, дайте ему права на чтение/запись следуя инструкции.

Не удаётся сделать бекапы/создаются битые бекапы при использовании плагина BackWPup (бекапы сайта по ftp WordPress)

Этот плагин использует поэтапную загрузку частей бекапа в один и тот же объект в хранилище. Наше Хранилище не поддерживает дозапись объектов, поэтому наша ftp-прослойка не позволяет сделать бекап таким образом. Чтобы делать бекапы с WordPress воспользуйтесь инструкцией.

CDN

Какие форматы файлов сжимаются при использовании CDN? Как включить GZIP-сжатие?

При раздаче контента с использованием CDN, GZIP-сжатие может быть включено для следующих форматов файлов:

  • text/html
  • text/css
  • application-x/javascript
  • application/javascript
  • text/plain
  • text/xml
  • application/xml
  • application/xhtml+xml
  • application/rss+xml
  • image/svg+xml

GZIP-сжатие для других форматов не поддерживается. При раздаче контента непосредственно из Хранилища (без использования CDN) GZIP-сжатие также не применяется. Обратите внимание! GZIP-сжатие работает только для объектов размером более 1KB. Для изображений и видео GZIP-сжатие не требуется, так как подобные файлы уже сжаты.

В чем различия между видами CDN?

Есть два варианта подключения CDN:

  • с произвольным источником (origin);
  • исходные файлы находятся в контейнере Облачного хранилища.

Для каждого из случаев доступно два провайдера: Akamai и Selectel.

Ресурс Selectel + Облачное хранилище можно создать в панели управления. Раздача по https доступна как с автоматически генерируемого домена UUID.selcdn.net, так и с персонального.

Ресурс Selectel + произвольный источник подключается в панели управления, при создании ресурса нужно указать адрес, с которого будет забираться контент (origin). Раздача по https доступна как с автоматически генерируемого домена UUID.selcdn.net, так и с персонального. Примечание: origin также должен работать по https.

Ресурс Akamai + произвольный источник подключается в панели управления. Требуется указать два адреса: origin (источник контента, откуда будут браться файлы) и пользовательский домен (с которого будет раздаваться контент). Пользовательский домен может быть:

  • генерируемый в Selectel, вида ***.selcdn.net;
  • персональный домен третьего уровня (чтобы он заработал, привяжите его к домену вида ***.selcdn.net у вашего DNS-регистратора CNAME-записью);
  • домен вида ***-a.akamaihd.net, который позволяет раздавать контент по https.

Такой ресурс создается вручную сотрудниками Selectel. После заполнения формы автоматически будет создан тикет, в котором придет уведомление, когда все настройки будут выполнены.

Для подключения услуги на балансе Хранилища и CDN должно быть не менее 1000 руб.

Почему файл с Cache-Control в N дней/часов/секунд не кэшируется на N дней/часов/секунд?

Заголовок Cache-Control не имеет отношения к времени, которое ссылка или файл будут храниться в кэше Edge-сервера. Данный заголовок отвечает за поведение Edge-сервера при поступлении запроса к файлу, который УЖЕ лежит в кэше.

Если при запросе к файлу, срок, указанный в Cache-Control, уже прошёл, то Edge-сервер проверит текущую версию файла в origin перед ответом клиенту. Такой ответ виден по статусу заголовка Cache-Status/X-Cache-Status — REVALIDATED.

Чтобы файлы/ссылки как можно дольше находились в кэше, необходимо чтобы они часто запрашивались. При соблюдении этих условий, файлы могут лежать в кэше годами (при этом не важно, какой установлен Cache-Control — этим заголовком контролируется частота проверки текущей версии файла в origin). Edge-серверы не могут держать в кэше все данные — они имеют физически ограниченное место под кэш, и это место выделяется для самых частозапрашиваемых данных.

Ошибки HTTP

Получаю ошибку 401

Для исполнения запроса недостаточно прав. Проверьте, что используются корректные данные для доступа (на странице). Обратите внимание! Пароль для входа в панель my.selectel.ru не подойдёт.

В случае использования стороннего ПО рекомендуем провести диагностику: 1. Получите X-Auth-Token:

curl -i https://api.selcdn.ru/auth/v1.0 -H "X-Auth-User: $login" -H "X-Auth-Key: $password"
  1. Получите список контейнеров:

    curl -i https://api.selcdn.ru/v1/SEL_<ID_аккаунта>  -H "X-Auth-Token: $token"

Для того чтобы не ориентироваться на время жизни токена, добавьте обработку ошибок 401 (повторный выпуск токена).

Если используются различные клиенты, создайте для каждого из них отдельного подпользователя в панели управления и выдайте права на соответствующие контейнеры — это предупредит возникновение конфликтов, при которых один клиент выпускает новый токен, а другой начинает получать 401 ошибку (так как у каждого подпользователя токены независимы).

Альтернативным решением для варианта с несколькими клиентами будет использование временных токенов.

Получаю ошибку 408

Ошибка 408 означает, что сервер хотел бы отключить неиспользуемое соединение. Подобное происходит, если клиент устанавливает соединение с Хранилищем и не отправляет данные в течение нескольких минут. Обычно это происходит при использовании многопоточного режима — такие соединения отбрасываются по таймауту, выдавая ошибку 408. Можно не обращать внимание на ошибки этого типа.

Получаю ошибку 409

Периодическое возникновение ошибки 409 связано с технической реализацией Облачного хранилища: файл, в который во время выполнения запроса производилась запись (PUT, POST, COPY), был заблокирован предыдущей операцией.

Для успешной загрузки файла в Хранилище направьте повторный PUT-запрос спустя 1 минуту после возникновения ошибки 409. Рекомендуется не выполнять одновременно более одной операции записи/удаления для одного и того же объекта.

Скачиваю контейнер/папку в виде zip-архива и получаю ошибку 400

Данная ошибка возникает в случае, если скачивать архивом контейнер, который содержит в себе более 10000 объектов. С помощью API также невозможно скачать контейнер с количеством объектов более 10000 в виде zip-архива.