Fog::Aliyun
Добавьте следующую строку в Gemfile вашего приложения:
gem 'fog-aliyun'
Затем выполните:
$ bundle
Или установите его самостоятельно следующим образом:
$ gem install fog-aliyun
Прежде чем вы сможете использовать fog-aliyun, вы должны потребовать его в своём приложении:
require 'fog/aliyun'
Поскольку хранить учётные данные в исходном коде — плохая практика, вам следует загрузить их из файла конфигурации по умолчанию для тумана: ~/.fog
. Этот файл может выглядеть так:
default:
:aliyun_accesskey_id: <YOUR_ACCESS_KEY_ID>,
:aliyun_accesskey_secret: <YOUR_SECRET_ACCESS_KEY>,
:aliyun_oss_endpoint: <YOUR_OSS_ENDPOINT>,
:aliyun_oss_location: <YOUR_OSS_LOACTION>,
:aliyun_oss_bucket: <YOUR_OSS_BUCKET>
conn = Fog::Storage[:aliyun]
Если вы не изменяли файл конфигурации по умолчанию или не хотите его использовать, вы можете загрузить свои учётные данные следующим образом:
opt = {
:provider => 'aliyun',
:aliyun_accesskey_id => <YOUR_ACCESS_KEY_ID>,
:aliyun_accesskey_secret => <YOUR_SECRET_ACCESS_KEY>,
:aliyun_oss_endpoint => <YOUR_OSS_ENDPOINT>,
:aliyun_oss_location => <YOUR_OSS_LOACTION>,
:aliyun_oss_bucket => <YOUR_OSS_BUCKET>,
}
conn = Fog::Storage.new(opt)
Fog::Aliyun предоставляет как модель, так и запрос абстракции. Абстракция запроса обеспечивает наиболее эффективный интерфейс, а абстракция модели оборачивает абстракцию запроса, чтобы обеспечить удобный интерфейс, подобный ActiveModel
.
Объект Fog::Storage поддерживает ряд методов, которые заключают в себе отдельные HTTP-запросы к API OSS.
Чтобы увидеть список запросов, поддерживаемых службой хранения:
conn.requests
Это возвращает:
[[nil, :copy_object], [nil, :delete_bucket], [nil, :delete_object], [nil, :get_bucket], [nil, :get_object], [nil, :get_object_http_url], [nil, :get_object_https_url], [nil, :head_object], [nil, :put_bucket], [nil, :put_object], [nil, :list_buckets], [nil, :list_objects], [nil, :get_containers], [nil, :get_container], [nil, :delete_container], [nil, :put_container]]
Чтобы запросить все сегменты:
conn.list_buckets
И это возвращает следующее:
[{"Location"=>"oss-cn-beijing", "Name"=>"dt1", "CreationDate"=>"2015-07-30T08:38:02.000Z"}, {"Location"=>"oss-cn-shenzhen", "Name"=>"ruby1", "CreationDate"=>"2015-07-30T02:22:34.000Z"}, {"Location"=>"oss-cn-qingdao", "Name"=>"yuanhang123", "CreationDate"=>"2015-05-18T03:06:31.000Z"}]
Вы также можете запросить следующим образом;
conn.list_buckets(:prefix=>"pre")
Вот краткое описание необязательных параметров:
Parameters | Description |
---|---|
:prefix |
Имя сегмента результатов должно начинаться с «префикса». Если он не установлен, информация о префиксе не будет отфильтрована Типы данных: String По умолчанию: нет |
:marker |
Результат начнётся с маркера в алфавитном порядке. Если он не установлен, он начнётся с первого Типы данных: String По умолчанию: нет |
:maxKeys |
Установите максимальное количество результатов. Если оно не установлено, будет установлено значение 100. Максимальное значение maxKeys равно 1000. Типы данных: String По умолчанию: 100 |
Чтобы узнать больше о методах запросов Fog::Aliyun, вы можете обратиться к нашему исходному коду. Чтобы узнать больше об API OSS, обратитесь к AliYun OSS API.
Модели Fog ведут себя аналогично ActiveModel
. Модели обычно реагируют на методы create
, save
, destroy
, reload
и attributes
. Кроме того, туман автоматически создаст средства доступа к атрибутам.
Вот краткое изложение общих методов модели:
Method | Описание |
---|---|
create |
Принимает хэш атрибутов и создаёт объект. Примечание: создание — это неблокирующий вызов, и вам потребуется дождаться действительного состояния, прежде чем использовать полученный объект. **Сохранить** — сохраняет объект. Примечание: не все объекты поддерживают обновление объекта. Уничтожить — уничтожает объект. Примечание: это неблокирующий вызов, и удаление объекта может произойти не мгновенно. Обновить — обновляет объект с последним состоянием из сервиса. Атрибуты — возвращает хеш, содержащий список атрибутов модели и значений. Идентичность — возвращает идентичность объекта. Примечание: она не всегда может быть равна object.id. В оставшейся части этого документа подробно описывается абстракция модели. Примечание. Fog иногда относится к контейнерам OSS как к каталогам. Список каталоговЧтобы получить список каталогов: dirs = conn.directories
Это возвращает коллекцию моделей Получить каталогЧтобы получить конкретный каталог: dir = dirs.get "dir"
Возвращает экземпляр Создать каталогДля создания каталога: dirs.create :key => 'backups'
Удалить каталогЧтобы удалить каталог: directory.destroy
Примечание: каталог должен быть пустым перед удалением. URL каталогаПолучить URL каталога: directory.public_url
Перечислить файлыПеречислить файлы в каталоге: directory.files
Примечание: содержимое файла не загружается до вызова атрибута Загрузить файлыЗагрузить файл в каталог: file = directory.files.create :key => 'space.jpg', :body => File.open "space.jpg"
Примечание: для файлов размером более 5 ГБ обратитесь к разделу «Загрузка больших файлов». Загрузка больших файловOSS требует, чтобы файлы размером более 5 ГБ (предельный размер по умолчанию для OSS) загружались в сегменты вместе с сопровождающим файлом манифеста. Все сегменты должны быть загружены в один и тот же контейнер. Сегментированные файлы загружаются как обычные файлы. Подробнее см. раздел «Скачать файлы». Скачать файлыНаиболее эффективный способ загрузки файлов из частного или общедоступного каталога выглядит следующим образом: File.open('downloaded-file.jpg', 'w') do | f |
directory.files.get("my_big_file.jpg") do | data, remaining, content_length |
f.syswrite data
end
end
Этот код скачает и сохранит файл. Примечание: атрибут Если объект файла уже загружен в память, вы можете сохранить его следующим образом: File.open('germany.jpg', 'w') {|f| f.write(file_object.body) }
Примечание: этот метод более ресурсоёмкий, так как весь объект загружается в память перед сохранением файла, как в приведённом выше примере. URL файлаПолучить URL файла: file.public_url
Скопировать файлCloud Files поддерживает копирование файлов. Чтобы скопировать файлы в контейнер с именем «trip» с именем «europe.jpg», выполните следующие действия: file.copy("trip", "europe.jpg")
Чтобы переместить или переименовать файл, выполните операцию копирования, а затем удалите старый файл: file.copy("trip", "germany.jpg")
file.destroy
Удалить файлУдалить файл: file.destroy
РазработкаПосле проверки репозитория запустите Чтобы установить этот гем на локальную машину, запустите ЛицензияГем доступен как открытый исходный код в соответствии с условиями MIT License. |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )