arc on hex

0.8.0 (20 Apr 2017 19:04)

Flexible file upload and attachment library for Elixir.


v0.8.0 (2017-04-20)

  • (Enhancement) Fix elixir warnings.
  • (Enhancement) Allow delete/1 to be overridden.
  • (Enhancement) Deletions follow same async behavior as uploads.
  • (Minor Breaking Change) URL encode returned urls. If you were explicitly encoding them yourself, you don't need to do this anymore.

v0.7.0 (2017-02-07)

  • Require Elixir v1.4
  • Relax package dependencies
  • Fix Elixir v1.4 warnings
  • (Enhancement) Disable asynchronous processing via module attribute @async false.
  • (Enhancement) Add retry functionality to remote path uploader

v0.7.0 Requires Elixir 1.4 or above, due to enhancements made with ExAws and Task Streaming

v0.6.0 (2016-12-19)

  • (Enhancement) Allow asset host to be set via an environment variable
  • (Enhancement) Allow downloading and saving remote files
  • (Enhancement) Move Arc storage module to config
  • (Bugfix) Split conversion arguments correctly when a file name has a space in it
  • (Bugfix) S3 object headers must be transferred to ExAws as a keyword list, not a map
  • (Bugfix) Don't prepend a forward-slash to local storage urls if the url already starts with a forward-slash.

v0.6.0-rc3 (2016-10-20)

  • (Dependencies) - Upgrade ex_aws to rc3

v0.6.0-rc2 (2016-10-20)

  • (Dependencies) - Upgrade ex_aws to rc2

v0.6.0-rc1 (2016-10-04)

  • (Dependencies) - Removed httpoison as an optional dependency, added sweet_xml and hackney as optional dependencies (required if using S3).
  • (Enhancement) File streaming to S3 - Allows the uploading of large files to S3 without reading to memory first.
  • (Enhancement) Allow Arc to transform and store directly on binary input.
  • (Bugfix - backwards incompatible) Return error tuple rather than raising Arc.ConvertError if the transformation fails.
  • (Bugfix) Update :crypto usage to :crypto.strong_rand_bytes
  • (Enhancement) Optionally set S3 bucket from runtime env var (config :arc, bucket: {:system, "S3_BUCKET"})
  • (Enhancement) Temporary files created during transformations now include the file extension.
  • (Bugfix) Add a leading slash to urls generated from the Local storage adapter.

v0.5.3 (2016-06-21)

  • (Enhancement) Relax ex_aws dependency to allow ~> 0.5.0

v0.5.2 (2016-04-27)

  • (Enhancement) Allow returning a list of arguments for transformations to preserve desired groupings.

v0.5.1 (2016-03-02)

  • (Enhancement) Raise a more helpful error message when attempting a transformation with an executable which cannot be found.

v0.5.0 (2016-03-02)

  • (Enhancement) Allow transforms via arbitrary system executables.
  • (Enhancement) Allow transforms to supply a function to define the transformation args.
  • (Deprecation) Deprecate usage of {:noaction} in favor of :noaction for transformation responses.

Upgrade instructions from 0.4.x to 0.5.x:

Arc now favors explicitness in file extension changes rather than scanning with a Regex. If you have a convert transformation which changes the file extension (through the parameter -format png argument), you must explicitly add a third tuple argument in the conversion noting the final extension.


# Change this:
  def transform(:thumb, _) do
    {:convert, "-strip -thumbnail 250x250^ -gravity center -extent 250x250 -format png"}

# To this:
  def transform(:thumb, _) do
    {:convert, "-strip -thumbnail 250x250^ -gravity center -extent 250x250 -format png", :png} #<--- Note the third tuple argument with the output file extension

v0.4.1 (2016-02-28)

  • (Bugfix) Fix regression using the local filesystem introduced via v0.4.0.

v0.4.0 (2016-02-25)

  • (Bugfix) Surface errors from ExAws put operations. Parse ExAws errors and return tuple of form {:error, List.t} when an error is encountered.

To upgrade and properly support parsing aws errors, add :poison to your list of dependencies.

Optional dependency added, prompting a minor version bump. While not a strict backwards incompatibility, Arc users should take note of the change as more than an internal change.

v0.3.0 (2016-01-22)

  • (Enhancement) Introduce Definition.delete/2

While there is no strict backwards incompatibility with the public API, a number of users have been using Arc.Storage.S3.delete/3 as a public API due to a lack of a fully supported delete method. This internal method has now changed slightly, thus prompting more than a patch release.

v0.2.3 (2016-01-22)

  • (Enhancement) Allow specifying custom s3 object headers through the definition module via s3_object_headers/2.

v0.2.2 (12-14-2015)

  • (Enhancement) Allow the version transformation and storage timeout to be specified in configuration config :arc, version_timeout: 15_000.

v0.2.1 (12-11-2015)

  • (Bugfix) Raise Arc.ConvertError if ImageMagick's convert tool exits unsuccessfully.

v0.2.0 (12-11-2015)

  • (Breaking Change) Erlcloud has been removed in favor of ExAws.
  • (Enhancement) Added a configuration parameter to generate urls in the virtual_host style.

Upgrade Instructions

Since erlcloud has been removed from arc, you must also remove it from your dependency graph as well as your application list. In its place, add ex_aws and httpoison to your dependencies as well as application list. Next, remove the aws credential configuration from arc:

config :arc,
  access_key_id: "###",		
  secret_access_key: "###",		
  bucket: "uploads"

config :arc,
  bucket: "uploads"

# (this is the default ex_aws config... if your keys are not in environment variables you can override it here)
config :ex_aws,
  access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role],
  secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]

Read more about how ExAws manages configuration here.

v0.1.4 (11-10-2015)

  • (Enhancement: Local Storage) Filenames which contain path separators will flatten out as expected prior to moving copying the file to its destination.

v0.1.3 (09-15-2015)

  • (Enhancement: Url Generation) default_url/2 introduced to definition module which passes the given scope as the second parameter. Backwards compatibility is maintained for default_url/1.

v0.1.2 (09-08-2015)

  • (Bugfix: Storage) Bugfix for referencing atoms in the file name.


  • (Enhancement: Storage) Add the local filesystem as a storage option.

Version History

Version Date
0.8.0 20 Apr 2017 19:04
0.7.0 07 Feb 2017 18:02
0.6.0 19 Dec 2016 13:12
0.6.0-rc3 20 Oct 2016 20:10
0.6.0-rc2 20 Oct 2016 20:10
0.6.0-rc1 05 Oct 2016 00:10
0.5.3 21 Jun 2016 19:06
0.5.2 27 Apr 2016 22:04
0.5.1 02 Mar 2016 22:03
0.5.0 02 Mar 2016 20:03
0.4.1 29 Feb 2016 03:02
0.4.0 25 Feb 2016 22:02
0.3.0 22 Jan 2016 19:01
0.2.3 22 Jan 2016 18:01
0.2.2 14 Dec 2015 16:12
0.2.1 11 Dec 2015 20:12
0.2.0 11 Dec 2015 19:12
0.1.4 10 Nov 2015 19:11
0.1.3 15 Sep 2015 21:09
0.1.2 08 Sep 2015 18:09
0.1.1 16 Aug 2015 17:08
0.1.0 18 Jun 2015 01:06