tfwright

tfwright

File upload/attachment/storage lib

Any recommendations for handling file attachment and storage in Elixir/Phoenix? Arc looks like the OG lib but hasn’t had much activity for almost 2 years. Waffle looks like a well marketed fork that claims the original is no longer “supported”, but I don’t see any notice to that effect.

Are folks mostly using one of those two? Rolling your own?

Most Liked

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

It will go just fine. To quote the AWS documentation:

The current version of the Amazon S3 API is 2006-03-01.

The API hasn’t had a backwards incompatible change in 14 years, at least according to its docs. ExAws deprecation is more about forward compatibility with new AWS services and less about backward compatibility with existing ones.

Matsa59

Matsa59

Write your code without create any coupling with your storage system. So if you want to change to another lib, you will not change any of your business stuff. In that way, you’ll be ok to use ExAws even if you think it will be deprecated.

But as said @benwilson512 aws api doesn’t break backward compatibilty. You should be ok for the next decade (or something like that).

tfwright

tfwright

I ended up rolling my own, and I decided to put it in its own lib. I’m not sure if I’ll expand it enough to merit releasing a package, but if anyone’s interested the source is on Github:

https://github.com/tfwright/capsule

It takes a lot of inspiration from Ruby’s Shrine, but with the spirit (patterns) of Elixir. It only handles url → local storage right now. I’ll at least be adding binary, and Plug.Upload support, probably Ecto support.

Where Next?

Popular in Questions Top

Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Other popular topics Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New

We're in Beta

About us Mission Statement