Active Storage OpenStack service
Active Storage facilitates uploading files to a cloud storage service like Amazon S3, Google Cloud Storage, or Microsoft Azure Storage and attaching those files to Active Record objects.
This gem adds support for the OpenStack Object Storage API.
The goal is to interact with the OpenStack API without any third party tools (Swift, Fog...).
We use the standard Net::HTTP ruby library.
We stay up-to-date with the Ruby and Rails versions.
Getting Started
In your Gemfile
add this line:
gem 'activestorage_openstack'
Prerequisites
In your Rails config/storage.yml
file add your OpenStack configuration:
openstack:
service: Openstack
container: __container__
authentication_url: __authentication_url__
region: __region__
credentials:
username: __username__
api_key: __api_key__
temporary_url_key: __temporary_url_key__
Then add to your config/environments/*.rb
files:
Rails.application.configure do
...
config.active_storage.service = :openstack
...
end
Installing
If you want to add features to the gem, clone the repository and use Docker:
$ git clone https://github.com/argus-api-team/activestorage-openstack.git
$ cd activestorage-openstack
$ docker image build -t activestorage_openstack .
Running the tests
We use the Guard gem to run tests:
$ docker container run -e RAILS_ENV=test -v $(pwd):/app -it activestorage_openstack guard -g red_green_refactor -c
The red_green_refactor
Guard group means:
- It runs Rspec tests with Spring.
- It watches
Gemfile
for changes. - It uses Rubocop and Reek for linting/coding style.
See Guardfile for details.
Built With
- Net::HTTP - From the standard Ruby Library.
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Mickael PALMA - Initial work - mickael-palma-argus
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the MIT-LICENSE file for details
Acknowledgments
- Inspiration from @chaadow's activestorage-openstack plugin