aws-elixir, к сожалению, не поддерживает S3, но ExAws поддерживает.Чтобы использовать ExAws, вам сначала нужно добавить эти зависимости в ваш файл mix.exs
:
defp deps() do
[
{:ex_aws, "~> 2.0"},
{:ex_aws_s3, "~> 2.0"},
{:poison, "~> 3.0"},
{:hackney, "~> 1.9"},
{:sweet_xml, "~> 0.6"},
]
end
Обратите внимание, что к вашим зависимостям нужно добавить и ex_aws
, и ex_aws_s3
.hackney
- это HTTP-клиент, poison
- для синтаксического анализа JSON, sweet_xml
- для синтаксического анализа XML.
Теперь, когда вы добавили зависимости, вам нужно вместо этого настроить S3 для подключения к пространствам DigitalOcean..
Введите это в файл config.exs:
config :ex_aws, :s3,
%{
access_key_id: "access key",
secret_access_key: "secret key",
scheme: "https://",
host: %{"sfo2" => "your-space-name.sfo2.digitaloceanspaces.com"},
region: "sfo2"
}
"access key"
и "secret key"
необходимо заменить фактическими ключами, которые вы получаете от DigitalOcean.
Обязательно замените "sfo2"
на фактический регион пробелов, который вы используете.И, конечно же, вместо your-space-name
.
введите свое действительное имя пробела. Не забудьте запустить mix deps.get
, и все готово.
Вы можете начать iex
сеанс и убедитесь, что все работает, запустив iex -S mix
, а затем набрав:
ExAws.S3.list_objects("bucket") |> ExAws.request!