Belt - A Flexible File-Storage Library



No, I discovered Belt just today, it’s the first time I use it and it’s 0.2.0 - but I will investigate more tomorrow :slight_smile:


New test_connection function in Belt 0.3.0

Version 0.3.0 is now available on Hex! It brings one new feature: Belt.test_connection/2 (Docs) which is quite useful if you want a quick way to determine if a set of provider credentials is working.


@jaimeiniesta @NobbZ I’ve submitted a pull request to support uploading in-memory data. Feel free to comment.

@wmnnd Looking forward to your feedback!


Upload in-memory data with Belt 0.4.0!

Thanks to @jayjun’s fantastic work, a brand-new feature is now available in Belt: Uploading iodata directly to all Providers without the need to go through a file first.
Belt.store_data/3 works just like, except that it takes iodata instead of a file path as the second argument and the :key option is mandatory.
Of course, it’s also accompanied by Belt.store_data_async/3 :slight_smile:

I’ve also updated the ex_aws dependency to the 2.x branch.
I originally wasn’t sure if this is the right thing to do, since it’s a major version update for this (optional) dependency and just a minor version update for Belt.
But since there is a bug in ExAws 1.x which breaks it on Elixir 16/OTP 21 and @benwilson512 pointed out that ExAws 2.x is “plug and play compatible” with 1.x, I decided this was the way to go :crystal_ball:

As always, Feedback is very welcome.


Tiny update: Fixed typespecs in Belt 0.4.1

As @maennchen pointed out, there were some inconsistencies in the typespecs of Belt.await/2 when used with Belt.delete/3, Belt.delete_scope/3 and Belt.delete_all/2.
Now the typespecs and docs correctly reflect that all deletion functions return :ok instead of {:ok, term} upon success. This doesn’t change the actual behavior of any code using these functions. If your code worked before, it’s still going to work now :slight_smile:


@wmnnd I found another small issue:

Many Files depend on :crypto.hash_algorithms. This type does not exist.



@wmnnd It would also be nice if you could losen the dependency requirement of gen_stage to ~> 0.12 so that the newest version is also compatible.


@maennchen Could you open issues for that in the Belt bug tracker?


@wmnnd Sure: