Digitalocean space с эликсиром - PullRequest
       9

Digitalocean space с эликсиром

0 голосов
/ 10 февраля 2019

Я пытаюсь найти aws-клиент для эликсира, который можно использовать с цифровыми океанскими пространствами.Я попробовал aws-elixir (поскольку он допускал разные конечные точки), но я не могу найти способ выполнять операции S3.

Я спрашиваю,

  1. Как мне обработать S3 bucketот aws-elixir?
  2. Если aws-elixir не работает, какое лучшее решение для моей ситуации?

1 Ответ

0 голосов
/ 10 февраля 2019

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!
...