dropbox_api 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +24 -12
- data/RELEASING.md +5 -0
- data/api_coverage.md +9 -0
- data/lib/dropbox_api.rb +23 -4
- data/lib/dropbox_api/chunked_uploader.rb +48 -0
- data/lib/dropbox_api/endpoints/content_upload.rb +16 -9
- data/lib/dropbox_api/endpoints/file_requests/create_file_request.rb +21 -0
- data/lib/dropbox_api/endpoints/files/get_metadata.rb +1 -1
- data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +4 -4
- data/lib/dropbox_api/endpoints/files/get_thumbnail_batch.rb +38 -0
- data/lib/dropbox_api/endpoints/files/list_folder.rb +16 -1
- data/lib/dropbox_api/endpoints/files/list_folder_get_latest_cursor.rb +8 -9
- data/lib/dropbox_api/endpoints/files/list_folder_longpoll.rb +1 -1
- data/lib/dropbox_api/endpoints/files/list_revisions.rb +1 -1
- data/lib/dropbox_api/endpoints/files/move.rb +2 -2
- data/lib/dropbox_api/endpoints/files/save_url_check_job_status.rb +1 -1
- data/lib/dropbox_api/endpoints/files/search.rb +1 -1
- data/lib/dropbox_api/endpoints/files/upload.rb +17 -27
- data/lib/dropbox_api/endpoints/files/upload_session_append_v2.rb +7 -5
- data/lib/dropbox_api/endpoints/files/upload_session_finish.rb +5 -3
- data/lib/dropbox_api/endpoints/files/upload_session_start.rb +3 -3
- data/lib/dropbox_api/endpoints/rpc_content.rb +9 -0
- data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +6 -6
- data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +5 -5
- data/lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb +2 -2
- data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +1 -1
- data/lib/dropbox_api/endpoints/sharing/list_shared_links.rb +1 -1
- data/lib/dropbox_api/endpoints/sharing/share_folder.rb +1 -1
- data/lib/dropbox_api/endpoints/virtual/upload_by_chunks.rb +49 -0
- data/lib/dropbox_api/errors/basic_error.rb +2 -0
- data/lib/dropbox_api/errors/create_file_request_error.rb +6 -0
- data/lib/dropbox_api/errors/thumbnail_batch_error.rb +7 -0
- data/lib/dropbox_api/errors/thumbnail_error.rb +10 -0
- data/lib/dropbox_api/metadata/access_level.rb +7 -4
- data/lib/dropbox_api/metadata/add_file_member_result.rb +13 -10
- data/lib/dropbox_api/metadata/add_member.rb +19 -16
- data/lib/dropbox_api/metadata/basic_account.rb +18 -15
- data/lib/dropbox_api/metadata/commit_info.rb +35 -1
- data/lib/dropbox_api/metadata/deleted.rb +9 -6
- data/lib/dropbox_api/metadata/file.rb +18 -15
- data/lib/dropbox_api/metadata/file_link_metadata.rb +48 -0
- data/lib/dropbox_api/metadata/file_member_action.rb +8 -5
- data/lib/dropbox_api/metadata/file_request.rb +30 -0
- data/lib/dropbox_api/metadata/folder.rb +9 -6
- data/lib/dropbox_api/metadata/{folder_link.rb → folder_link_metadata.rb} +1 -1
- data/lib/dropbox_api/metadata/folder_sharing_info.rb +7 -4
- data/lib/dropbox_api/metadata/link_permissions.rb +11 -8
- data/lib/dropbox_api/metadata/media_info.rb +14 -7
- data/lib/dropbox_api/metadata/media_metadata.rb +14 -12
- data/lib/dropbox_api/metadata/member.rb +12 -9
- data/lib/dropbox_api/metadata/member_action.rb +13 -10
- data/lib/dropbox_api/metadata/member_permission.rb +11 -8
- data/lib/dropbox_api/metadata/member_permission_list.rb +19 -17
- data/lib/dropbox_api/metadata/name.rb +9 -6
- data/lib/dropbox_api/metadata/photo_metadata.rb +14 -11
- data/lib/dropbox_api/metadata/resource.rb +1 -1
- data/lib/dropbox_api/metadata/shared_folder.rb +16 -13
- data/lib/dropbox_api/metadata/shared_folder_policy.rb +7 -4
- data/lib/dropbox_api/metadata/shared_link.rb +30 -18
- data/lib/dropbox_api/metadata/shared_link_metadata.rb +26 -0
- data/lib/dropbox_api/metadata/space_allocation.rb +7 -4
- data/lib/dropbox_api/metadata/space_usage.rb +9 -6
- data/lib/dropbox_api/metadata/{symbol.rb → tag.rb} +1 -1
- data/lib/dropbox_api/metadata/team_member_info.rb +11 -8
- data/lib/dropbox_api/metadata/thumbnail_batch_result_data.rb +6 -0
- data/lib/dropbox_api/metadata/thumbnail_batch_result_entry.rb +23 -0
- data/lib/dropbox_api/metadata/upload_session_cursor.rb +7 -4
- data/lib/dropbox_api/metadata/video_metadata.rb +15 -12
- data/lib/dropbox_api/metadata/write_mode.rb +3 -3
- data/lib/dropbox_api/{endpoints/options_validator.rb → options_validator.rb} +1 -1
- data/lib/dropbox_api/results/add_file_member_result_list.rb +1 -1
- data/lib/dropbox_api/results/get_thumbnail_batch_result.rb +9 -0
- data/lib/dropbox_api/results/list_shared_links_result.rb +1 -1
- data/lib/dropbox_api/version.rb +1 -1
- metadata +20 -6
- data/lib/dropbox_api/metadata/file_link.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47cd12fc36b2c62e257a717af58a4a2fa11f802c
|
4
|
+
data.tar.gz: c1ae321423d2b7f2494bba5fa9e24870322b0b25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11c9d49a540be98afedb19678fc4e85ac0de227eec0784916ce9279c9b37bba96922593a56096e56d058eb8b862c70684e827d292d60820f1fd5ee37f6f9c2e7
|
7
|
+
data.tar.gz: b75d171a9a4947d22f41efed6917e7e66b25636bf82fa2250b449978c0a0e6cf48868e1161a8292be7a1adbda4a0890b05cccdbb3f92e2a3f24af753b973caec
|
data/README.md
CHANGED
@@ -116,7 +116,30 @@ result.has_more?
|
|
116
116
|
|
117
117
|
The instance of `Client` we've initialized is the one you'll be using to
|
118
118
|
perform API calls. You can check the class' documentation to find
|
119
|
-
[all available endpoints](http://jesus.github.io/dropbox_api/DropboxApi/Client.html)
|
119
|
+
[all available endpoints](http://jesus.github.io/dropbox_api/DropboxApi/Client.html).
|
120
|
+
|
121
|
+
### Large file uploads
|
122
|
+
|
123
|
+
If you need to upload files larger than 150MB the default `#upload` endpoint
|
124
|
+
won't work. Instead, you need to start a upload session and upload
|
125
|
+
the file in small chunks.
|
126
|
+
|
127
|
+
To make this easier, the method `upload_by_chunks` will handle this for you,
|
128
|
+
example:
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
client = DropboxApi::Client.new("VofXAX8D...")
|
132
|
+
#=> #<DropboxApi::Client ...>
|
133
|
+
File.open("large_file.avi") do |f|
|
134
|
+
client.upload_by_chunks "/remote_path.txt", f
|
135
|
+
end
|
136
|
+
```
|
137
|
+
|
138
|
+
Check out the
|
139
|
+
[method documentation](http://www.xuuso.com/dropbox_api/DropboxApi/Client.html#upload_by_chunks-instance_method)
|
140
|
+
to find out all available options.
|
141
|
+
|
142
|
+
|
120
143
|
|
121
144
|
## Development
|
122
145
|
|
@@ -161,14 +184,3 @@ command line.
|
|
161
184
|
Any help will be much appreciated. The easiest way to help is to implement one
|
162
185
|
or more of the [endpoints that are still pending](http://jesus.github.io/dropbox_api/file.api_coverage.html). To see how the
|
163
186
|
endpoints are implemented, check out the `lib/dropbox_api/endpoints` folder.
|
164
|
-
|
165
|
-
If you want to help but you're unsure how to get started, please get in touch
|
166
|
-
by opening an issue.
|
167
|
-
|
168
|
-
Here's the standard way to submit code updates:
|
169
|
-
|
170
|
-
1. Fork it ( https://github.com/Jesus/dropbox_api/fork )
|
171
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
172
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
173
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
174
|
-
5. Create a new Pull Request
|
data/RELEASING.md
ADDED
data/api_coverage.md
CHANGED
@@ -103,6 +103,15 @@ API call | Status
|
|
103
103
|
`/get_current_account` | 🌕
|
104
104
|
`/get_space_usage` | 🌕
|
105
105
|
|
106
|
+
## File Requests namespace
|
107
|
+
|
108
|
+
API call | Status
|
109
|
+
--- | :---:
|
110
|
+
`/create` | 🌕
|
111
|
+
`/get` | 🌑
|
112
|
+
`/list` | 🌑
|
113
|
+
`/update` | 🌑
|
114
|
+
|
106
115
|
|
107
116
|
## Dropbox Business API
|
108
117
|
Unfortunately, none of the Dropbox Business endpoints have been implemented.
|
data/lib/dropbox_api.rb
CHANGED
@@ -12,7 +12,7 @@ require 'dropbox_api/middleware/stack'
|
|
12
12
|
require 'dropbox_api/metadata/field'
|
13
13
|
require 'dropbox_api/metadata/base'
|
14
14
|
|
15
|
-
require 'dropbox_api/metadata/
|
15
|
+
require 'dropbox_api/metadata/tag'
|
16
16
|
require 'dropbox_api/metadata/access_level'
|
17
17
|
require 'dropbox_api/metadata/member_action'
|
18
18
|
|
@@ -42,14 +42,18 @@ require 'dropbox_api/metadata/deleted'
|
|
42
42
|
require 'dropbox_api/metadata/resource'
|
43
43
|
require 'dropbox_api/metadata/shared_folder_policy'
|
44
44
|
require 'dropbox_api/metadata/shared_folder'
|
45
|
-
require 'dropbox_api/metadata/
|
46
|
-
require 'dropbox_api/metadata/
|
45
|
+
require 'dropbox_api/metadata/file_link_metadata'
|
46
|
+
require 'dropbox_api/metadata/folder_link_metadata'
|
47
|
+
require 'dropbox_api/metadata/shared_link_metadata'
|
47
48
|
require 'dropbox_api/metadata/shared_link'
|
48
49
|
require 'dropbox_api/metadata/space_allocation'
|
49
50
|
require 'dropbox_api/metadata/space_usage'
|
50
51
|
require 'dropbox_api/metadata/upload_session_cursor'
|
51
52
|
require 'dropbox_api/metadata/write_mode'
|
52
53
|
require 'dropbox_api/metadata/commit_info'
|
54
|
+
require 'dropbox_api/metadata/thumbnail_batch_result_entry'
|
55
|
+
require 'dropbox_api/metadata/thumbnail_batch_result_data'
|
56
|
+
require 'dropbox_api/metadata/file_request'
|
53
57
|
|
54
58
|
require 'dropbox_api/errors/http_error'
|
55
59
|
require 'dropbox_api/errors/basic_error'
|
@@ -93,6 +97,9 @@ require 'dropbox_api/errors/add_file_member_error'
|
|
93
97
|
require 'dropbox_api/errors/add_folder_member_error'
|
94
98
|
require 'dropbox_api/errors/too_many_requests_error'
|
95
99
|
require 'dropbox_api/errors/get_account_error'
|
100
|
+
require 'dropbox_api/errors/thumbnail_batch_error'
|
101
|
+
require 'dropbox_api/errors/thumbnail_error'
|
102
|
+
require 'dropbox_api/errors/create_file_request_error'
|
96
103
|
|
97
104
|
require 'dropbox_api/result_builder'
|
98
105
|
require 'dropbox_api/results/base'
|
@@ -101,6 +108,7 @@ require 'dropbox_api/results/get_copy_reference_result'
|
|
101
108
|
require 'dropbox_api/results/save_copy_reference_result'
|
102
109
|
require 'dropbox_api/results/add_file_member_result_list'
|
103
110
|
require 'dropbox_api/results/get_temporary_link_result'
|
111
|
+
require 'dropbox_api/results/get_thumbnail_batch_result'
|
104
112
|
require 'dropbox_api/results/list_folder_result'
|
105
113
|
require 'dropbox_api/results/list_revisions_result'
|
106
114
|
require 'dropbox_api/results/list_folder_longpoll_result'
|
@@ -117,13 +125,15 @@ require 'dropbox_api/results/upload_session_start'
|
|
117
125
|
|
118
126
|
require 'dropbox_api/client'
|
119
127
|
require 'dropbox_api/connection_builder'
|
128
|
+
require 'dropbox_api/options_validator'
|
120
129
|
|
121
130
|
require 'dropbox_api/endpoints/base'
|
122
131
|
require 'dropbox_api/endpoints/rpc'
|
132
|
+
require 'dropbox_api/endpoints/rpc_content'
|
123
133
|
require 'dropbox_api/endpoints/rpc_notify'
|
124
134
|
require 'dropbox_api/endpoints/content_download'
|
125
135
|
require 'dropbox_api/endpoints/content_upload'
|
126
|
-
|
136
|
+
|
127
137
|
require 'dropbox_api/endpoints/files/copy'
|
128
138
|
require 'dropbox_api/endpoints/files/copy_reference_get'
|
129
139
|
require 'dropbox_api/endpoints/files/copy_reference_save'
|
@@ -134,6 +144,7 @@ require 'dropbox_api/endpoints/files/get_metadata'
|
|
134
144
|
require 'dropbox_api/endpoints/files/get_preview'
|
135
145
|
require 'dropbox_api/endpoints/files/get_temporary_link'
|
136
146
|
require 'dropbox_api/endpoints/files/get_thumbnail'
|
147
|
+
require 'dropbox_api/endpoints/files/get_thumbnail_batch'
|
137
148
|
require 'dropbox_api/endpoints/files/list_folder'
|
138
149
|
require 'dropbox_api/endpoints/files/list_folder_continue'
|
139
150
|
require 'dropbox_api/endpoints/files/list_folder_longpoll'
|
@@ -148,6 +159,7 @@ require 'dropbox_api/endpoints/files/upload'
|
|
148
159
|
require 'dropbox_api/endpoints/files/upload_session_start'
|
149
160
|
require 'dropbox_api/endpoints/files/upload_session_append_v2'
|
150
161
|
require 'dropbox_api/endpoints/files/upload_session_finish'
|
162
|
+
|
151
163
|
require 'dropbox_api/endpoints/sharing/add_file_member'
|
152
164
|
require 'dropbox_api/endpoints/sharing/add_folder_member'
|
153
165
|
require 'dropbox_api/endpoints/sharing/list_folder_members'
|
@@ -155,7 +167,14 @@ require 'dropbox_api/endpoints/sharing/share_folder'
|
|
155
167
|
require 'dropbox_api/endpoints/sharing/list_shared_links'
|
156
168
|
require 'dropbox_api/endpoints/sharing/create_shared_link_with_settings'
|
157
169
|
require 'dropbox_api/endpoints/sharing/unshare_file'
|
170
|
+
|
158
171
|
require 'dropbox_api/endpoints/users/get_account'
|
159
172
|
require 'dropbox_api/endpoints/users/get_account_batch'
|
160
173
|
require 'dropbox_api/endpoints/users/get_current_account'
|
161
174
|
require 'dropbox_api/endpoints/users/get_space_usage'
|
175
|
+
|
176
|
+
require 'dropbox_api/endpoints/file_requests/create_file_request'
|
177
|
+
|
178
|
+
require 'dropbox_api/chunked_uploader'
|
179
|
+
|
180
|
+
require 'dropbox_api/endpoints/virtual/upload_by_chunks'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module DropboxApi
|
2
|
+
class ChunkedUploader
|
3
|
+
include DropboxApi::OptionsValidator
|
4
|
+
|
5
|
+
def initialize(client, path, i_stream, options = {})
|
6
|
+
@chunk_size = options.delete(:chunk_size) || 4 * 1024 * 1024 # 4 MiB
|
7
|
+
|
8
|
+
@client = client
|
9
|
+
@i_stream = i_stream
|
10
|
+
|
11
|
+
init_commit_info(path, options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def start
|
15
|
+
chunk = @i_stream.read @chunk_size
|
16
|
+
|
17
|
+
@cursor = @client.upload_session_start chunk
|
18
|
+
end
|
19
|
+
|
20
|
+
def upload
|
21
|
+
loop do
|
22
|
+
chunk = @i_stream.read @chunk_size
|
23
|
+
break if chunk.nil?
|
24
|
+
|
25
|
+
@client.upload_session_append_v2 @cursor, chunk
|
26
|
+
break if chunk.size < @chunk_size
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def finish
|
31
|
+
@client.upload_session_finish @cursor, @commit_info
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def init_commit_info(path, options)
|
37
|
+
validate_options([
|
38
|
+
:mode,
|
39
|
+
:autorename,
|
40
|
+
:client_modified,
|
41
|
+
:mute
|
42
|
+
], options)
|
43
|
+
|
44
|
+
options[:path] = path
|
45
|
+
@commit_info = DropboxApi::Metadata::CommitInfo.build_from_options options
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -6,19 +6,14 @@ module DropboxApi::Endpoints
|
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
|
-
def build_request(params,
|
10
|
-
# TODO: It would be better to have a stream object on which we can call
|
11
|
-
# #read, rather than the full file content.
|
12
|
-
body = content
|
9
|
+
def build_request(params, body)
|
13
10
|
headers = {
|
14
11
|
'Dropbox-API-Arg' => JSON.dump(params),
|
15
12
|
'Content-Type' => 'application/octet-stream'
|
16
13
|
}
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
headers['Content-Length'] = body.stat.size.to_s
|
21
|
-
end
|
14
|
+
|
15
|
+
content_length = get_content_length body
|
16
|
+
headers['Content-Length'] = content_length unless content_length.nil?
|
22
17
|
|
23
18
|
return body, headers
|
24
19
|
end
|
@@ -26,5 +21,17 @@ module DropboxApi::Endpoints
|
|
26
21
|
def perform_request(params, content)
|
27
22
|
process_response(get_response(params, content))
|
28
23
|
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def get_content_length(content)
|
28
|
+
if content.respond_to?(:bytesize)
|
29
|
+
content.bytesize.to_s
|
30
|
+
elsif content.respond_to?(:length)
|
31
|
+
content.length.to_s
|
32
|
+
elsif content.respond_to?(:stat)
|
33
|
+
content.stat.size.to_s
|
34
|
+
end
|
35
|
+
end
|
29
36
|
end
|
30
37
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module DropboxApi::Endpoints::Files
|
2
|
+
class CreateFileRequest < DropboxApi::Endpoints::Rpc
|
3
|
+
Method = :post
|
4
|
+
Path = "/2/file_requests/create".freeze
|
5
|
+
ResultType = DropboxApi::Metadata::FileRequest
|
6
|
+
ErrorType = DropboxApi::Errors::CreateFileRequestError
|
7
|
+
|
8
|
+
# Create a file request for a given path.
|
9
|
+
#
|
10
|
+
# @param title [String] The title of the file request. Must not be empty.
|
11
|
+
# @param destination [String] The path of the folder in the Dropbox where
|
12
|
+
# uploaded files will be sent. For apps with the app folder permission,
|
13
|
+
# this will be relative to the app folder.
|
14
|
+
add_endpoint :create_file_request do |title, destination|
|
15
|
+
perform_request({
|
16
|
+
title: title,
|
17
|
+
destination: destination
|
18
|
+
})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::Resource
|
6
6
|
ErrorType = DropboxApi::Errors::GetMetadataError
|
7
7
|
|
8
|
-
include DropboxApi::
|
8
|
+
include DropboxApi::OptionsValidator
|
9
9
|
|
10
10
|
# Returns the metadata for a file or folder.
|
11
11
|
#
|
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::File
|
6
6
|
ErrorType = DropboxApi::Errors::PreviewError
|
7
7
|
|
8
|
-
include DropboxApi::
|
8
|
+
include DropboxApi::OptionsValidator
|
9
9
|
|
10
10
|
# Get a thumbnail for an image.
|
11
11
|
#
|
@@ -39,11 +39,11 @@ module DropboxApi::Endpoints::Files
|
|
39
39
|
# end
|
40
40
|
# @param path [String] The path to the image file you want to thumbnail.
|
41
41
|
# @option options format [:jpeg, :png] The format for the thumbnail image,
|
42
|
-
#
|
42
|
+
# `:jpeg` (default) or `:png`. For images that are photos, `:jpeg` should be
|
43
43
|
# preferred, while png is better for screenshots and digital arts. The
|
44
|
-
# default is
|
44
|
+
# default is `:jpeg`.
|
45
45
|
# @option options size [:w32h32, :w64h64, :w128h128, :w640h480, :w1024h768]
|
46
|
-
# The size for the thumbnail image. The default is
|
46
|
+
# The size for the thumbnail image. The default is `:w64h64`.
|
47
47
|
add_endpoint :get_thumbnail do |path, options = {}, &block|
|
48
48
|
validate_options([:format, :size], options)
|
49
49
|
options[:format] ||= :jpeg
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module DropboxApi::Endpoints::Files
|
2
|
+
class GetThumbnailBatch < DropboxApi::Endpoints::RpcContent
|
3
|
+
Method = :post
|
4
|
+
Path = "/2/files/get_thumbnail_batch".freeze
|
5
|
+
ResultType = DropboxApi::Results::GetThumbnailBatchResult
|
6
|
+
ErrorType = DropboxApi::Errors::ThumbnailBatchError
|
7
|
+
|
8
|
+
include DropboxApi::OptionsValidator
|
9
|
+
|
10
|
+
# Get a thumbnails for a batch of images.
|
11
|
+
#
|
12
|
+
# @param paths [Array<String>] The paths to the image files you want thumbnails for.
|
13
|
+
# @option options format [:jpeg, :png] The format for the thumbnail image,
|
14
|
+
# `:jpeg` (default) or `:png`. For images that are photos, `:jpeg` should be
|
15
|
+
# preferred, while png is better for screenshots and digital arts. The
|
16
|
+
# default is `:jpeg`.
|
17
|
+
# @option options size [:w32h32, :w64h64, :w128h128, :w640h480, :w1024h768]
|
18
|
+
# The size for the thumbnail image. The default is `:w64h64`.
|
19
|
+
# @option options mode [:strict, :bestfit, :fitone_bestfit]
|
20
|
+
# How to resize and crop the image to achieve the desired size. The default
|
21
|
+
# for this union is strict.
|
22
|
+
add_endpoint :get_thumbnail_batch do |paths, options = {}|
|
23
|
+
validate_options([:format, :size, :mode], options)
|
24
|
+
options[:format] ||= :jpeg
|
25
|
+
options[:size] ||= :w64h64
|
26
|
+
options[:mode] ||= :strict
|
27
|
+
|
28
|
+
perform_request :entries => build_entries_params(paths, options)
|
29
|
+
end
|
30
|
+
|
31
|
+
def build_entries_params(paths, options)
|
32
|
+
paths.map do |path|
|
33
|
+
options.merge({ :path => path })
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Results::ListFolderResult
|
6
6
|
ErrorType = DropboxApi::Errors::ListFolderError
|
7
7
|
|
8
|
-
include DropboxApi::
|
8
|
+
include DropboxApi::OptionsValidator
|
9
9
|
|
10
10
|
# Returns the contents of a folder.
|
11
11
|
#
|
@@ -23,15 +23,30 @@ module DropboxApi::Endpoints::Files
|
|
23
23
|
:recursive,
|
24
24
|
:include_media_info,
|
25
25
|
:include_deleted,
|
26
|
+
:shared_link,
|
26
27
|
:include_has_explicit_shared_members
|
27
28
|
], options)
|
28
29
|
options[:recursive] ||= false
|
29
30
|
options[:include_media_info] ||= false
|
30
31
|
options[:include_deleted] ||= false
|
32
|
+
options[:shared_link] = build_shared_link_param(options[:shared_link]) if options[:shared_link]
|
31
33
|
|
32
34
|
perform_request options.merge({
|
33
35
|
:path => path
|
34
36
|
})
|
35
37
|
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def build_shared_link_param(shared_link_param)
|
42
|
+
case shared_link_param
|
43
|
+
when String, Symbol
|
44
|
+
DropboxApi::Metadata::SharedLink.new shared_link_param
|
45
|
+
when DropboxApi::Metadata::SharedLink
|
46
|
+
shared_link_param
|
47
|
+
else
|
48
|
+
raise ArgumentError, "Invalid `shared_link`: #{shared_link.inspect}"
|
49
|
+
end.to_hash
|
50
|
+
end
|
36
51
|
end
|
37
52
|
end
|
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Results::ListFolderGetLatestCursorResult
|
6
6
|
ErrorType = DropboxApi::Errors::ListFolderError
|
7
7
|
|
8
|
-
include DropboxApi::
|
8
|
+
include DropboxApi::OptionsValidator
|
9
9
|
|
10
10
|
# A way to quickly get a cursor for the folder's state. Unlike
|
11
11
|
# {DropboxApi::API#list_folder}, this doesn't return any entries. This
|
@@ -14,17 +14,16 @@ module DropboxApi::Endpoints::Files
|
|
14
14
|
# Dropbox.
|
15
15
|
#
|
16
16
|
# @option options path [String] The path to the folder you want to read.
|
17
|
-
# @option options recursive [Boolean] If
|
17
|
+
# @option options recursive [Boolean] If `true`, the list folder operation
|
18
18
|
# will be applied recursively to all subfolders and the response will
|
19
19
|
# contain contents of all subfolders. The default for this field is
|
20
|
-
#
|
21
|
-
# @option options include_media_info [Boolean] If
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
# {DropboxApi::Metadata::DeletedMetadata} will be returned for deleted
|
20
|
+
# `false`.
|
21
|
+
# @option options include_media_info [Boolean] If `true`, `media_info` is
|
22
|
+
# set for photo and video. The default for this field is `false`.
|
23
|
+
# @option options include_deleted [Boolean] If `true`,
|
24
|
+
# {DropboxApi::Metadata::Deleted} will be returned for deleted
|
26
25
|
# file or folder, otherwise {DropboxApi::Errors::LookupError} will be
|
27
|
-
# returned. The default for this field is
|
26
|
+
# returned. The default for this field is `false`.
|
28
27
|
add_endpoint :list_folder_get_latest_cursor do |options = {}|
|
29
28
|
validate_options([
|
30
29
|
:path,
|
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Results::ListFolderLongpollResult
|
6
6
|
ErrorType = DropboxApi::Errors::ListFolderLongpollError
|
7
7
|
|
8
|
-
include DropboxApi::
|
8
|
+
include DropboxApi::OptionsValidator
|
9
9
|
|
10
10
|
# A longpoll endpoint to wait for changes on an account. In conjunction
|
11
11
|
# with list_folder, this call gives you a low-latency way to monitor an
|