在我的ruby on rails应用程序中,我希望能够从我自己的Dropbox中的目录中读取(仅读取)文件。
我找到的所有教程都是授权访问访问者的保管箱,因此需要使用他们的oauth登录页面登录dropbox。
有没有办法通过使用我的凭据来保存我的应用程序中的文件(因此无需手动记录自己)?
我也希望能够通过Google驱动器进行此操作。
谢谢!
答案 0 :(得分:1)
我已按照以下步骤操作,并且已阅读/写入我的Dropbox。
名称: 在Heroku上使用Dropbox和Ruby On Rails
目标: Heroku不提供持久存储,并建议亚马逊s3需要信用卡注册和使用它。 因此,至少在培训和发展水平上,Dropbox可能是一个很好的替代品。
步骤: 1.安装sdk 命令:gem install Dropbox-sdk 链接:https://www.Dropbox.com/developers-v1/core/sdks/ruby
如果您没有,请创建一个Dropbox accout 链接:https://www.Dropbox.com 操作:创建帐户
在Dropbox平台上创建应用 链接:https://www.Dropbox.com/developers/apps 操作:为您的应用指定名称,您将获得App Key和App Secret 备注:应用程序可以访问整个Dropbox或仅访问特定文件夹
尝试使用此基础教程来测试您可以执行的操作 链接:https://www.Dropbox.com/developers-v1/core/start/ruby 行动: a.replace'INSERT_APP_KEY'和'INSERT_APP_SECRET'与您的应用程序键 b。执行ruby脚本 c。浏览给定的链接以授权和生成访问令牌 d。在脚本控制台上复制并粘贴代码并继续 警告: 该脚本首先尝试加载本地文件,因此请确保在正确的路径上创建它 执行步骤: a.Authenticate b。上传文件 c。下载文件并将其写入本地
您可以在应用主页上生成访问令牌并使用它而不是每次使用APP_KEY& APP_SECRET
6D。在ImageUploader文件(CustomNameUploader)中设置适当的设置
class ImageUploader < CarrierWave::Uploader::Base
storage :Dropbox
def initailize
CarrierWave.configure do |config|
...
# Dropbox settings
...
end
end
end
7。如果您在源控件上,最好将值设置为env vars,然后再使用它们。 该链接显示了如何在ubuntu中设置或保留环境变量。 链接:https://help.ubuntu.com/community/EnvironmentVariables
在生产(heroku)设置环境变量如下:
用法:heroku config:set ACCESS_TOKEN_SECRET='your_app_access_token_secret'
链接:https://devcenter.heroku.com/articles/config-vars
在config / initializers中创建carrierwave.rb文件并将所有设置放在该文件中是一个好习惯 也可以有条件地设置生产和开发
请注意Dropbox可能会很慢并且您会收到应用程序错误,因此请尝试使用较小的文件并加载它们 如果它们太多,则加入分页。
这是在Linkedin上发布的链接: https://www.linkedin.com/pulse/using-dropbox-ruby-rails-heroku-serjik-isagholian?trk=prof-post