README.md
# CarrierWave FTP storage
[![Build Status](https://travis-ci.org/luan/carrierwave-ftp.svg?branch=master)](https://travis-ci.org/luan/carrierwave-ftp)
[![Code Climate](https://codeclimate.com/github/luan/carrierwave-ftp/badges/gpa.svg)](https://codeclimate.com/github/luan/carrierwave-ftp)
[![Dependency Status](https://gemnasium.com/luan/carrierwave-ftp.png)](https://gemnasium.com/luan/carrierwave-ftp)
This gem adds support for FTP upload to [CarrierWave](https://github.com/jnicklas/carrierwave/)
## Installation
Install the latest release:
gem install carrierwave-ftp
Require it in your code:
require 'carrierwave/storage/ftp'
Or, in Rails you can add it to your Gemfile:
gem 'carrierwave-ftp', :require => 'carrierwave/storage/ftp/all' # both FTP/SFTP
gem 'carrierwave-ftp', :require => 'carrierwave/storage/ftp' # FTP only
gem 'carrierwave-ftp', :require => 'carrierwave/storage/sftp' # SFTP only
## Getting Started (FTP)
First configure CarrierWave with your FTP credentials:
```ruby
CarrierWave.configure do |config|
config.ftp_host = "ftp.example.com"
config.ftp_port = 21
config.ftp_user = "example"
config.ftp_passwd = "secret"
config.ftp_folder = "/public_html/uploads"
config.ftp_url = "http://example.com/uploads"
config.ftp_passive = false # false by default
config.ftp_tls = false # false by default
end
```
And then in your uploader, set the storage to `:ftp`:
```ruby
class AvatarUploader < CarrierWave::Uploader::Base
storage :ftp
end
```
## Getting Started (SFTP)
First configure CarrierWave with your SFTP credentials:
```ruby
CarrierWave.configure do |config|
config.sftp_host = "example.com"
config.sftp_user = "example"
config.sftp_folder = "public_html/uploads"
config.sftp_url = "http://example.com/uploads"
config.sftp_options = {
:password => "secret",
:port => 22
}
end
```
And then in your uploader, set the storage to `:sftp`:
```ruby
class AvatarUploader < CarrierWave::Uploader::Base
storage :sftp
end
```