diff --git a/lib/api/azure/file.ex b/lib/api/azure/file.ex index d167e29..e3719b3 100644 --- a/lib/api/azure/file.ex +++ b/lib/api/azure/file.ex @@ -12,11 +12,13 @@ defmodule FileStorageApi.API.Azure.File do @impl true def upload(container_name, connection, filename, blob_name, opts \\ []) do + converted_opts = convert_opts(opts) + case Blob.upload_file( container(container_name, connection), filename, blob_name, - Enum.into(opts, %{}) + converted_opts ) do {:ok, %{request_url: _request_url}} -> {:ok, blob_name || Path.basename(filename)} @@ -83,4 +85,13 @@ defmodule FileStorageApi.API.Azure.File do defp storage_protocol(%{is_development_factory: true}), do: "http" defp storage_protocol(_context), do: "https" + + defp convert_opts(opts) do + Map.new(opts, fn {key, value} -> + case key do + :meta -> {key, Enum.map(value, fn {k, v} -> {String.replace(k, "-", "_"), v} end)} + _ -> {key, value} + end + end) + end end diff --git a/mix.exs b/mix.exs index ca94b19..7971041 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule FileStorageApi.MixProject do def project do [ app: :file_storage_api, - version: "2.3.2", + version: "2.3.3", elixir: "~> 1.10", elixirc_paths: elixirc_paths(Mix.env()), elixirc_options: [warnings_as_errors: Mix.env() != :test],