aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Added rubocop / codeclimate config and fixed current offenses (#45)Cristian Bica2017-07-1418-33/+183
|
* Fix regular expression on s3 test URL generation test (#44)Dino Maric2017-07-131-5/+5
| | | | | | | So tests are passing if the bucket name is rails-active storage. But developers specify their own s3 tests configuration (in my case was activestorage-test) then this regex fails. Also the first part is dynamic and based on bucket name and region
* Merge pull request #43 from dixpac/small_gcs_service_refactoringGeorge Claghorn2017-07-131-8/+2
|\ | | | | Remove unnecessary variables from gcs_service implementation
| * Remove few ivars from gcs_service implementationdixpac2017-07-131-8/+2
|/
* Merge pull request #42 from quartzmo/gcs-site-urlGeorge Claghorn2017-07-123-6/+6
|\ | | | | Update GCSService#url
| * Update GCSService#urlChris Smith2017-07-123-6/+6
| | | | | | | | | | Update google-cloud-storage dependency to 1.3 Refactor arguments to Google::Cloud::Storage::File#signed_url
* | Revert "S3: slim down service implementation (#40)" (#41)David Heinemeier Hansson2017-07-121-24/+36
|/ | | This reverts commit 6d3962461fb8d35fc9538d685fee96267663acf2.
* S3: slim down service implementation (#40)Jeremy Daer2017-07-111-36/+24
| | | | | | | * Use simple core API for duck-type compat with other clients * initialize: accept an existing client * initialize: accept arbitrary client args instead of a fixed, required set * download: use native get_object streaming, no need to implement range requests * exists?: use head_object (which returns immediately) rather than waiting for existence
* Revert "Depend on Rails > 5.1"George Claghorn2017-07-111-4/+4
| | | | This reverts commit 53d5384ac265ead44b25eec5f8f5020568184da2.
* Depend on Rails > 5.1George Claghorn2017-07-111-4/+4
|
* Expose chunked downloadsGeorge Claghorn2017-07-103-6/+19
|
* Scope aws-skd to version 2 (#34)Dino Maric2017-07-102-2/+2
| | | | | Since we use new aws-sdk API, I've scoped aws-sdk version so someone doesn't accidentaly installs wrong version during the development.
* Configurator tests: work against test-local configJeremy Daer2017-07-091-3/+3
| | | | | | So tests pass when service configs aren't set up. References #28
* Tests: Dir.mktmpdir neatly wraps up tmpdir + joinJeremy Daer2017-07-093-6/+5
|
* Add basic tests to the Configurator#build (#28)Dino Maric2017-07-091-0/+15
|
* Accept sgids for existing blobs created via direct upload as an attachableDavid Heinemeier Hansson2017-07-092-0/+9
|
* Direct uploads for S3David Heinemeier Hansson2017-07-0916-21/+138
|
* Copypasta commentsDavid Heinemeier Hansson2017-07-091-3/+0
| | | | | | | | | | # Conflicts: # lib/active_storage/engine.rb # lib/active_storage/service.rb # lib/active_storage/service/disk_service.rb # lib/active_storage/service/s3_service.rb # test/service/s3_service_test.rb # test/test_helper.rb
* Proper logging is now in placeDavid Heinemeier Hansson2017-07-091-1/+0
|
* Test URL generation for S3 and DiskDavid Heinemeier Hansson2017-07-092-0/+10
|
* Instrument and log the servicesDavid Heinemeier Hansson2017-07-097-32/+169
|
* Merge pull request #27 from dixpac/fix_configuration_keys_symbolizationDavid Heinemeier Hansson2017-07-091-1/+1
|\ | | | | Symbolize all keys inside configuration nested hash
| * Symbolize all keys inside configuration nested hashdixpac2017-07-091-1/+1
| | | | | | | | | | Since configuration is a nested hash we need to symbolize all keys of the hash. Othervise fetcing will fail on start
* | Example of keyfile specificationDavid Heinemeier Hansson2017-07-091-1/+12
| |
* | Ensure binary encoding for downloadingDavid Heinemeier Hansson2017-07-091-1/+1
|/
* Use class methods scope now that we have multipleDavid Heinemeier Hansson2017-07-091-14/+16
|
* Merge pull request #26 from jeremy/service-configuratorDavid Heinemeier Hansson2017-07-095-38/+39
|\ | | | | Clarify how a service can build other composed services
| * Clarify how a service can build other composed servicesJeremy Daer2017-07-095-38/+39
| | | | | | | | | | | | | | | | | | * Service.build takes the literal YAML config hash for the service and a reference to the Configurator that's doing the building. * Services that compose additional services can use the Configurator to look them up and build them by name. See MirrorService for an example. References #23
* | Match new configurator needsDavid Heinemeier Hansson2017-07-091-0/+2
|/
* Service: clarify Service.build argumentsJeremy Daer2017-07-092-5/+5
| | | | | | | First arg is config for the service we're instantiating. Second arg is service configurations so we can look up and configure other services by name.
* Travis CI 💡Jeremy Daer2017-07-081-0/+15
|
* Configure services that reference other servicesJeremy Daer2017-07-0810-43/+89
| | | | | | | | * Move service configuration from the Engine to Service * Delegate configuration mechanics to internal Service::Configurator * Delegate service building to the concrete Service classes, allowing them to configure composed services. * Implement for the Mirror service.
* Mirror: explicit primary service and list of mirrorsJeremy Daer2017-07-082-15/+22
| | | | | | | | | | | | Pass separate primary service and list of mirrors rather than treating the first of the services list as the primary. Nice fit for keyword args, and something we've long wanted in the equivalent Basecamp file repository. Upload returns the results of the underlying service uploads rather than the io.rewind result. Rewind before uploading rather than afterward, and demonstrate that behavior with a test. Test that more than one mirror works.
* Merge pull request #21 from jeremy/disk-binary-ioDavid Heinemeier Hansson2017-07-092-14/+8
|\ | | | | Disk service: use binary IO throughout, not UTF-8
| * Disk service: use binary IO throughout, not UTF-8Jeremy Daer2017-07-082-14/+8
| |
* | Merge pull request #22 from jeremy/disk-filename-urlDavid Heinemeier Hansson2017-07-095-9/+9
|\ \ | |/ |/| Disk storage: ensure URLs end with the blob filename
| * Disk storage: ensure URLs end with the blob filename since some user agents ↵Jeremy Daer2017-07-085-9/+9
|/ | | | don't respect Content-Disposition filename
* Tests: skip GCS/AWS service tests if unconfiguredJeremy Daer2017-07-081-0/+1
|
* Merge pull request #15 from robin850/documentationDavid Heinemeier Hansson2017-07-086-5/+100
|\ | | | | Add some documentation
| * Add some documentationRobin Dupret2017-07-076-5/+100
| |
* | Add a brief roadmap sectionDavid Heinemeier Hansson2017-07-081-1/+5
| |
* | Change type of created_at columns from time to datetimeGeorge Claghorn2017-07-071-8/+8
| | | | | | | | We intend to store a date and time, not merely a time.
* | It is an engine (because of tasks) not a railtieDavid Heinemeier Hansson2017-07-072-2/+2
| |
* | Merge pull request #14 from maratgaliev/readme_patchDavid Heinemeier Hansson2017-07-071-1/+1
|\ \ | |/ |/| Update README.md
| * Update README.mdMarat Galiev2017-07-071-1/+1
|/ | | For the first look It's obvious, but makes sense I think, and raises undefined method `active_storage' on migration run for example.
* Bundle google-cloud-storage instead of the full Google SDKGeorge Claghorn2017-07-072-91/+2
|
* Create db/migrate if it doesn't existGeorge Claghorn2017-07-061-0/+1
|
* Merge pull request #10 from bradly/fix-readme-typoGeorge Claghorn2017-07-061-1/+1
|\ | | | | Fixing typo in Readme
| * Fixing typo in ReadmeBradly Feeley2017-07-061-1/+1
| |
* | Merge pull request #8 from robin850/fix-migrationsGeorge Claghorn2017-07-063-4/+4
|\ \ | |/ |/| Fix the migration class name