Ruby on rails 无法上载到具有carrierwave Dropbox且没有访问令牌机密的Dropbox

Ruby on rails 无法上载到具有carrierwave Dropbox且没有访问令牌机密的Dropbox,ruby-on-rails,devise,dropbox,carrierwave,dropbox-api,Ruby On Rails,Devise,Dropbox,Carrierwave,Dropbox Api,我正在开发一个有多个组织的Rails(4)应用程序,每个组织都有一个面向公众的表单,访问者可以通过该表单上传文件。我面临的挑战是如何使其足够灵活以支持多个存储提供商。我的目标是让组织能够从多个提供商中进行选择,第一个是Dropbox,作为这些上传的目的地 我使用Desive进行身份验证,因此我还利用它和omniauth\u dropbox\u oauth2在用户连接dropbox后获取其凭据 我使用Carrierwave来管理我的文件上传,但是在没有提供组织(Dropbox用户)访问令牌机密的情

我正在开发一个有多个组织的Rails(4)应用程序,每个组织都有一个面向公众的表单,访问者可以通过该表单上传文件。我面临的挑战是如何使其足够灵活以支持多个存储提供商。我的目标是让组织能够从多个提供商中进行选择,第一个是Dropbox,作为这些上传的目的地

我使用Desive进行身份验证,因此我还利用它和
omniauth\u dropbox\u oauth2
在用户连接dropbox后获取其凭据

我使用Carrierwave来管理我的文件上传,但是在没有提供组织(Dropbox用户)访问令牌机密的情况下,我很难上传文件,这是我通过oauth2授权connect时得不到的

我甚至没有让我的Carrierwave上传程序为每个用户动态初始化配置,所以在这一点上,我真的只是想了解我只使用我的APP_密钥、APP_SECRET和我的ACCESS_令牌来配置它会出什么问题,这似乎对他们的支持是有效的

不确定是否值得在这里共享代码,但无论如何,我现在就在这里

Gemfile

carrierwave (0.10.0)
carrierwave-aws (0.7.1)
  carrierwave (~> 0.7)
carrierwave-dropbox (1.0.2)
  carrierwave (~> 0.9)
  dropbox-sdk (~> 1.6)
应用程序\u uploader.rb(Carrierwave)

class ApplicationUploader

我想知道是否有人能解释一下,为什么在您的
Gemfile
更改中没有
\u access\u token\u secret

的情况下,上传会失败

gem 'carrierwave-dropbox'


然后
bundle install

我怀疑CarrierWave使用的是OAuth 1,但您使用的是OAuth 2。OAuth 1使用OAuth令牌和OAuth令牌密钥,而OAuth 2使用单个访问令牌。你说得对。发布后,我开始探索
carrierwave dropbox的分支,发现其中一个带有“粗糙的oauth2实现”,不包括用于授权的访问令牌机密。现在出现了一个新问题,我的用户没有经过身份验证,但一旦我解决了这个问题,我可能会发布我自己的答案。谢谢@smarx。
gem 'carrierwave-dropbox'
gem 'carrierwave-dropbox', :git => 'https://github.com/robin850/carrierwave-dropbox.git', :tag => 'v2.0.0.rc1'