2013-03-24 2 views
0

Мое приложение размещается на Heroku и мне интересно, если его можно загрузить файл не публичному/папку на Heroku, но непосредственно - скажем - LinodeЗагрузка файлов в Linode с помощью CarrierWave

Мое приложение использует как Heroku и Linode. Оба разговаривают друг с другом через запросы веб-сервиса. Но, вообще говоря, я пытаюсь сохранить любой сгенерированный/загруженный файл только на Linode - и ничего на Heroku

Теперь у меня есть ситуация, когда я хочу разрешить пользователям загружать файлы. Конечным пунктом назначения будет Linode. Но в настоящее время мне нужно перейти с клиентского ПК -> Heroku -> Linode. Оптимальным решением было бы, однако, Client PC -> Linode

Я думал, что попрошу, прежде чем попытаться переустановить существующий код. Изменил бы метод storage_dir следующим образом?

def storage_dir 
    return http://<linode>/<local-folder> 
end 

Спасибо за вашу помощь Abhinav

+0

Возможно, решение для javascript на стороне клиента, где вы просто загружаете файл непосредственно в linode? вы можете использовать совместное использование ресурсов Cross Source – John

ответ

0

Таким образом, вы используете CarrierWave? Я не уверен, как вы в настоящее время загружаете в Linode, но я возьму удар.

Таким образом, в соответствии с документацией CarrierWave на GitHub, вам нужно добавить что-то вроде этого, чтобы, возможно, carrierwave.rb файл в ваш конфигурационный/инициализаторах:

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS',   # required 
    :aws_access_key_id  => 'xxx',   # required 
    :aws_secret_access_key => 'yyy',   # required 
    } 
    config.fog_directory = 'name_of_directory' # required 
end 

Конечно, это если вы используете Amazon AWS S3. Я нашел некоторую туманную документацию для linode (других услуг хранения) по адресу http://ruby-doc.org/gems/docs/p/phpfog-fog-0.4.1.2/Fog/Linode/Compute/Mock.html Если вы нажмете на «new (options = {})», вы увидите @linode_api_key = options[:linode_api_key]. Итак, я думаю, вы сможете использовать CarrierWave для прямой загрузки в Linode с:

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'Linode',  
    :linode_api_key   => 'xxx',   
    } 
    config.fog_directory = 'name_of_directory' 
end 
Смежные вопросы