This gem adds support for WebDAV to CarrierWave
Install the latest release:
gem install carrierwave-webdav
Require it in your code:
require 'carrierwave/webdav'
Or, in Rails you can add it to your Gemfile:
gem 'carrierwave-webdav', :require => 'carrierwave/webdav'
Follow the "Getting Started" directions in the main Carrierwave repository.
In Rails, add WebDAV settings to config/initializers/carrierwave.rb
CarrierWave.configure do |config|
config.storage = :webdav
config.webdav_server = 'https://your.webdav_server.com/dav' # Your WebDAV url.
# config.webdav_write_server = 'https://secure.your.webdavserver.com/dav/' # This is an optional attribute. It can save on one server and read from another server. (Contributed by @eychu. Thanks)
# config.webdav_autocreates_dirs = true # if automatic directory creation is enabled on the server (disables explicit directory creation)
config.webdav_username = 'your webdav username'
config.webdav_password = 'your webdav password'
end
In your uploader, set the storage to :webdav
:
class AvatarUploader < CarrierWave::Uploader::Base
storage :webdav
end
Since WebDAV doesn't make the files available via HTTP, you'll need to stream
them yourself. In Rails for example, you could use the send_data
method.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request