我想覆盖Dropbox上的现有文件。
以下是我使用的代码(基于the docs):
require 'dropbox_sdk'
ACCESS_TOKEN = '###'
client = DropboxClient.new(ACCESS_TOKEN)
file = open('/source_folder/file1.csv')
response = client.put_file('/target_folder/file1.csv', file, true)
puts "uploaded:", response.inspect
这不会覆盖现有文件。我通过查看它所在的目录来检查它。它包含旧版本而不是新版本。
response.inspect
返回:
{"rev"=>"9e6b400e64803", "thumb_exists"=>false, "path"=>"/target_folder/file1.csv", "is_dir"=>false, "client_mtime"=>"Sun, 07 Sep 2014 14:56:35 +0000", "icon"=>"page_white", "bytes"=>14705913, "modified"=>"Sun, 07 Sep 2014 14:56:35 +0000", "size"=>"14 MB", "root"=>"dropbox", "mime_type"=>"text/csv", "revision"=>648884}
我接下来应该尝试什么?
答案 0 :(得分:1)
我意识到这不是一个真正的答案,但是没有其他地方可以粘贴它。 : - )
如果它有帮助,这里是我写一个文件,阅读它,覆盖该文件,然后读出新内容的成绩单。也许你可以发现你在做什么和我在做什么之间的区别。 (或者也许您可以使用相同的方法调用get_file
来验证您的写入是否确实有效。)
1.9.2-p290 :001 > require 'dropbox_sdk'
=> true
1.9.2-p290 :002 > client = DropboxClient.new('<my access token>')
=> #<DropboxClient:0x007ffb0423bfe8 @session=#<DropboxOAuth2Session:0x007ffb0423bf98 @locale=nil, @access_token="<my access token>">, @root="auto">
1.9.2-p290 :003 > client.put_file('hello.txt', 'hello', true)
=> {"rev"=>"a49510f8d89e", "thumb_exists"=>false, "path"=>"/hello.txt", "is_dir"=>false, "client_mtime"=>"Sun, 07 Sep 2014 20:59:24 +0000", "icon"=>"page_white_text", "bytes"=>5, "modified"=>"Sun, 07 Sep 2014 20:59:24 +0000", "size"=>"5 bytes", "root"=>"dropbox", "mime_type"=>"text/plain", "revision"=>42133}
1.9.2-p290 :004 > client.get_file('hello.txt')
=> "hello"
1.9.2-p290 :005 > client.put_file('hello.txt', 'goodbye', true)
=> {"rev"=>"a49610f8d89e", "thumb_exists"=>false, "path"=>"/hello.txt", "is_dir"=>false, "client_mtime"=>"Sun, 07 Sep 2014 20:59:42 +0000", "icon"=>"page_white_text", "bytes"=>7, "modified"=>"Sun, 07 Sep 2014 20:59:42 +0000", "size"=>"7 bytes", "root"=>"dropbox", "mime_type"=>"text/plain", "revision"=>42134}
1.9.2-p290 :006 > client.get_file('hello.txt')
=> "goodbye"