files.com 1.0.106 → 1.0.111
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/_VERSION +1 -1
- data/docs/app.md +2 -0
- data/docs/file.md +0 -2
- data/docs/file_upload_part.md +39 -0
- data/docs/folder.md +0 -2
- data/docs/sso_strategy.md +2 -0
- data/lib/files.com.rb +2 -1
- data/lib/files.com/api_client.rb +6 -1
- data/lib/files.com/models/app.rb +5 -0
- data/lib/files.com/models/file.rb +0 -9
- data/lib/files.com/models/file_action.rb +1 -1
- data/lib/files.com/models/{file_part_upload.rb → file_upload_part.rb} +12 -12
- data/lib/files.com/models/folder.rb +0 -9
- data/lib/files.com/models/sso_strategy.rb +5 -0
- data/lib/files.com/uri.rb +70 -0
- data/spec/uri_spec.rb +11 -0
- metadata +6 -4
- data/docs/file_part_upload.md +0 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 225dfeba48af26960bc78d58fcc6582130528647e1f4f8cbe46883f79a24cc78
|
4
|
+
data.tar.gz: e432cdc6416e3ff8f24911833c33f244dc6d3c030db9a1ea1d517ab4e7038098
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca79ab1f63905d8a1d91ebf3a4c620ec0d1f10024b6786162e6735266a1dc2c548bde72461f7ec2e653dd5bab918505b3b6bd99ed887c3152ae76d252fc55919
|
7
|
+
data.tar.gz: 067e4d6f28a7ecfdd71b327e026a6414988384639af8546dcc8dd0a52da280be8ded9af59b6146d99f43c3d6bd6a9ae832c4eef7af344bfb3cddeeedc6971c89
|
data/_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.111
|
data/docs/app.md
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
"documentation_links": "Important Info => http://files.test/learn-more",
|
10
10
|
"icon_url": "",
|
11
11
|
"logo_url": "",
|
12
|
+
"screenshot_list_urls": "",
|
12
13
|
"logo_thumbnail_url": "",
|
13
14
|
"sso_strategy_type": "",
|
14
15
|
"remote_server_type": "",
|
@@ -24,6 +25,7 @@
|
|
24
25
|
* `documentation_links` (string): Collection of named links to documentation
|
25
26
|
* `icon_url` (string): App icon
|
26
27
|
* `logo_url` (string): Full size logo for the App
|
28
|
+
* `screenshot_list_urls` (string): Screenshots of the App
|
27
29
|
* `logo_thumbnail_url` (string): Logo thumbnail for the App
|
28
30
|
* `sso_strategy_type` (string): Associated SSO Strategy type, if any
|
29
31
|
* `remote_server_type` (string): Associated Remote Server type, if any
|
data/docs/file.md
CHANGED
@@ -7,7 +7,6 @@ may places where a Ruby File object can be used.
|
|
7
7
|
|
8
8
|
```
|
9
9
|
{
|
10
|
-
"id": 1,
|
11
10
|
"path": "path/file.txt",
|
12
11
|
"display_name": "file.txt",
|
13
12
|
"type": "file",
|
@@ -27,7 +26,6 @@ may places where a Ruby File object can be used.
|
|
27
26
|
}
|
28
27
|
```
|
29
28
|
|
30
|
-
* `id` (int64): File/Folder ID
|
31
29
|
* `path` (string): File/Folder path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
32
30
|
* `display_name` (string): File/Folder display name
|
33
31
|
* `type` (string): Type: `directory` or `file`.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# FileUploadPart
|
2
|
+
|
3
|
+
## Example FileUploadPart Object
|
4
|
+
|
5
|
+
```
|
6
|
+
{
|
7
|
+
"send": "",
|
8
|
+
"action": "multipart",
|
9
|
+
"ask_about_overwrites": true,
|
10
|
+
"available_parts": 1,
|
11
|
+
"expires": "",
|
12
|
+
"headers": "",
|
13
|
+
"http_method": "PUT",
|
14
|
+
"next_partsize": 1,
|
15
|
+
"parallel_parts": true,
|
16
|
+
"parameters": "{}",
|
17
|
+
"part_number": 1,
|
18
|
+
"partsize": 1,
|
19
|
+
"path": "",
|
20
|
+
"ref": "upload-1",
|
21
|
+
"upload_uri": ""
|
22
|
+
}
|
23
|
+
```
|
24
|
+
|
25
|
+
* `send` (object): Content-Type and File to send
|
26
|
+
* `action` (string): Type of upload
|
27
|
+
* `ask_about_overwrites` (boolean): If `true`, this file exists and you may wish to ask the user for overwrite confirmation
|
28
|
+
* `available_parts` (int64): Number of parts in the upload
|
29
|
+
* `expires` (string): Date/time of when this Upload part expires and the URL cannot be used any more
|
30
|
+
* `headers` (object): Additional upload headers to provide as part of the upload
|
31
|
+
* `http_method` (string): HTTP Method to use for uploading the part, usually `PUT`
|
32
|
+
* `next_partsize` (int64): Size in bytes for this part
|
33
|
+
* `parallel_parts` (boolean): If `true`, multiple parts may be uploaded in parallel. If `false`, be sure to only upload one part at a time, in order.
|
34
|
+
* `parameters` (object): Additional HTTP parameters to send with the upload
|
35
|
+
* `part_number` (int64): Number of this upload part
|
36
|
+
* `partsize` (int64): Size in bytes for the next upload part
|
37
|
+
* `path` (string): New file path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
38
|
+
* `ref` (string): Reference name for this upload part
|
39
|
+
* `upload_uri` (string): URI to upload this part to
|
data/docs/folder.md
CHANGED
@@ -9,7 +9,6 @@ Files::Dir is an alias of Files::Folder
|
|
9
9
|
|
10
10
|
```
|
11
11
|
{
|
12
|
-
"id": 1,
|
13
12
|
"path": "path/file.txt",
|
14
13
|
"display_name": "file.txt",
|
15
14
|
"type": "file",
|
@@ -29,7 +28,6 @@ Files::Dir is an alias of Files::Folder
|
|
29
28
|
}
|
30
29
|
```
|
31
30
|
|
32
|
-
* `id` (int64): File/Folder ID
|
33
31
|
* `path` (string): File/Folder path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
34
32
|
* `display_name` (string): File/Folder display name
|
35
33
|
* `type` (string): Type: `directory` or `file`.
|
data/docs/sso_strategy.md
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
"id": 1,
|
14
14
|
"saml_provider_cert_fingerprint": "",
|
15
15
|
"saml_provider_issuer_url": "",
|
16
|
+
"saml_provider_metadata_content": "",
|
16
17
|
"saml_provider_metadata_url": "",
|
17
18
|
"saml_provider_slo_target_url": "",
|
18
19
|
"saml_provider_sso_target_url": "",
|
@@ -53,6 +54,7 @@
|
|
53
54
|
* `id` (int64): ID
|
54
55
|
* `saml_provider_cert_fingerprint` (string): Identity provider sha256 cert fingerprint if saml_provider_metadata_url is not available.
|
55
56
|
* `saml_provider_issuer_url` (string): Identity provider issuer url
|
57
|
+
* `saml_provider_metadata_content` (string): Custom identity provider metadata
|
56
58
|
* `saml_provider_metadata_url` (string): Metadata URL for the SAML identity provider
|
57
59
|
* `saml_provider_slo_target_url` (string): Identity provider SLO endpoint
|
58
60
|
* `saml_provider_sso_target_url` (string): Identity provider SSO endpoint if saml_provider_metadata_url is not available.
|
data/lib/files.com.rb
CHANGED
@@ -25,6 +25,7 @@ require "files.com/response"
|
|
25
25
|
require "files.com/system_profiler"
|
26
26
|
require "files.com/util"
|
27
27
|
require "files.com/list"
|
28
|
+
require "files.com/uri"
|
28
29
|
|
29
30
|
require "files.com/models/account_line_item"
|
30
31
|
require "files.com/models/action"
|
@@ -46,7 +47,7 @@ require "files.com/models/file"
|
|
46
47
|
require "files.com/models/file_action"
|
47
48
|
require "files.com/models/file_comment"
|
48
49
|
require "files.com/models/file_comment_reaction"
|
49
|
-
require "files.com/models/
|
50
|
+
require "files.com/models/file_upload_part"
|
50
51
|
require "files.com/models/folder"
|
51
52
|
require "files.com/models/group"
|
52
53
|
require "files.com/models/group_user"
|
data/lib/files.com/api_client.rb
CHANGED
@@ -170,7 +170,12 @@ module Files
|
|
170
170
|
end
|
171
171
|
|
172
172
|
private def api_url(url = "", base_url = nil)
|
173
|
-
Addressable::URI.
|
173
|
+
uri = Addressable::URI.new
|
174
|
+
uri.host = Addressable::URI.parse(base_url).host
|
175
|
+
uri.path = "/api/rest/v1" + Files::URI.normalized_path(url)
|
176
|
+
uri.scheme = Addressable::URI.parse(base_url).scheme
|
177
|
+
|
178
|
+
uri.to_s
|
174
179
|
end
|
175
180
|
|
176
181
|
private def check_api_key!(api_key)
|
data/lib/files.com/models/app.rb
CHANGED
@@ -34,6 +34,11 @@ module Files
|
|
34
34
|
@attributes[:logo_url]
|
35
35
|
end
|
36
36
|
|
37
|
+
# string - Screenshots of the App
|
38
|
+
def screenshot_list_urls
|
39
|
+
@attributes[:screenshot_list_urls]
|
40
|
+
end
|
41
|
+
|
37
42
|
# string - Logo thumbnail for the App
|
38
43
|
def logo_thumbnail_url
|
39
44
|
@attributes[:logo_thumbnail_url]
|
@@ -588,15 +588,6 @@ module Files
|
|
588
588
|
@write_io.write_nonblock *args
|
589
589
|
end
|
590
590
|
|
591
|
-
# int64 - File/Folder ID
|
592
|
-
def id
|
593
|
-
@attributes[:id]
|
594
|
-
end
|
595
|
-
|
596
|
-
def id=(value)
|
597
|
-
@attributes[:id] = value
|
598
|
-
end
|
599
|
-
|
600
591
|
# string - File/Folder path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
601
592
|
def path
|
602
593
|
@attributes[:path]
|
@@ -119,7 +119,7 @@ module Files
|
|
119
119
|
|
120
120
|
response, options = Api.send_request("/file_actions/begin_upload/#{params[:path]}", :post, params, options)
|
121
121
|
response.data.map do |entity_data|
|
122
|
-
|
122
|
+
FileUploadPart.new(entity_data, options)
|
123
123
|
end
|
124
124
|
end
|
125
125
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Files
|
4
|
-
class
|
4
|
+
class FileUploadPart
|
5
5
|
attr_reader :options, :attributes
|
6
6
|
|
7
7
|
def initialize(attributes = {}, options = {})
|
@@ -19,57 +19,57 @@ module Files
|
|
19
19
|
@attributes[:action]
|
20
20
|
end
|
21
21
|
|
22
|
-
# boolean - If
|
22
|
+
# boolean - If `true`, this file exists and you may wish to ask the user for overwrite confirmation
|
23
23
|
def ask_about_overwrites
|
24
24
|
@attributes[:ask_about_overwrites]
|
25
25
|
end
|
26
26
|
|
27
|
-
#
|
27
|
+
# int64 - Number of parts in the upload
|
28
28
|
def available_parts
|
29
29
|
@attributes[:available_parts]
|
30
30
|
end
|
31
31
|
|
32
|
-
# string -
|
32
|
+
# string - Date/time of when this Upload part expires and the URL cannot be used any more
|
33
33
|
def expires
|
34
34
|
@attributes[:expires]
|
35
35
|
end
|
36
36
|
|
37
|
-
# object - Additional upload headers
|
37
|
+
# object - Additional upload headers to provide as part of the upload
|
38
38
|
def headers
|
39
39
|
@attributes[:headers]
|
40
40
|
end
|
41
41
|
|
42
|
-
# string -
|
42
|
+
# string - HTTP Method to use for uploading the part, usually `PUT`
|
43
43
|
def http_method
|
44
44
|
@attributes[:http_method]
|
45
45
|
end
|
46
46
|
|
47
|
-
#
|
47
|
+
# int64 - Size in bytes for this part
|
48
48
|
def next_partsize
|
49
49
|
@attributes[:next_partsize]
|
50
50
|
end
|
51
51
|
|
52
|
-
# boolean - If true
|
52
|
+
# boolean - If `true`, multiple parts may be uploaded in parallel. If `false`, be sure to only upload one part at a time, in order.
|
53
53
|
def parallel_parts
|
54
54
|
@attributes[:parallel_parts]
|
55
55
|
end
|
56
56
|
|
57
|
-
#
|
57
|
+
# object - Additional HTTP parameters to send with the upload
|
58
58
|
def parameters
|
59
59
|
@attributes[:parameters]
|
60
60
|
end
|
61
61
|
|
62
|
-
#
|
62
|
+
# int64 - Number of this upload part
|
63
63
|
def part_number
|
64
64
|
@attributes[:part_number]
|
65
65
|
end
|
66
66
|
|
67
|
-
#
|
67
|
+
# int64 - Size in bytes for the next upload part
|
68
68
|
def partsize
|
69
69
|
@attributes[:partsize]
|
70
70
|
end
|
71
71
|
|
72
|
-
# string -
|
72
|
+
# string - New file path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
73
73
|
def path
|
74
74
|
@attributes[:path]
|
75
75
|
end
|
@@ -150,15 +150,6 @@ module Files
|
|
150
150
|
path
|
151
151
|
end
|
152
152
|
|
153
|
-
# int64 - File/Folder ID
|
154
|
-
def id
|
155
|
-
@attributes[:id]
|
156
|
-
end
|
157
|
-
|
158
|
-
def id=(value)
|
159
|
-
@attributes[:id] = value
|
160
|
-
end
|
161
|
-
|
162
153
|
# string - File/Folder path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
163
154
|
def path
|
164
155
|
@attributes[:path]
|
@@ -44,6 +44,11 @@ module Files
|
|
44
44
|
@attributes[:saml_provider_issuer_url]
|
45
45
|
end
|
46
46
|
|
47
|
+
# string - Custom identity provider metadata
|
48
|
+
def saml_provider_metadata_content
|
49
|
+
@attributes[:saml_provider_metadata_content]
|
50
|
+
end
|
51
|
+
|
47
52
|
# string - Metadata URL for the SAML identity provider
|
48
53
|
def saml_provider_metadata_url
|
49
54
|
@attributes[:saml_provider_metadata_url]
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module Files
|
2
|
+
module URI
|
3
|
+
# This is a copy of Addressable::URI.normalize_component without Addressable::IDNA.unicode_normalize_kc.
|
4
|
+
def self.normalize_component(component, character_class =
|
5
|
+
Addressable::URI::CharacterClasses::RESERVED + Addressable::URI::CharacterClasses::UNRESERVED,
|
6
|
+
leave_encoded = '')
|
7
|
+
return nil if component.nil?
|
8
|
+
|
9
|
+
unless component.is_a? String
|
10
|
+
begin
|
11
|
+
component = component.to_str
|
12
|
+
rescue NoMethodError, TypeError
|
13
|
+
raise TypeError, "Can't convert #{component.class} into String."
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
unless [ String, Regexp ].include?(character_class.class)
|
18
|
+
raise TypeError,
|
19
|
+
"Expected String or Regexp, got #{character_class.inspect}"
|
20
|
+
end
|
21
|
+
if character_class.is_a?(String)
|
22
|
+
leave_re = unless leave_encoded.empty?
|
23
|
+
character_class = "#{character_class}%" unless character_class.include?('%')
|
24
|
+
|
25
|
+
"|%(?!#{leave_encoded.chars.map do |char|
|
26
|
+
seq = SEQUENCE_ENCODING_TABLE[char]
|
27
|
+
[ seq.upcase, seq.downcase ]
|
28
|
+
end.flatten.join('|')})"
|
29
|
+
end
|
30
|
+
|
31
|
+
character_class = /[^#{character_class}]#{leave_re}/
|
32
|
+
end
|
33
|
+
# We can't perform regexps on invalid UTF sequences, but
|
34
|
+
# here we need to, so switch to ASCII.
|
35
|
+
component = component.dup
|
36
|
+
component.force_encoding(Encoding::ASCII_8BIT)
|
37
|
+
unencoded = Addressable::URI.unencode_component(component, String, leave_encoded)
|
38
|
+
begin
|
39
|
+
encoded = Addressable::URI.encode_component(
|
40
|
+
# Addressable::IDNA.unicode_normalize_kc(unencoded),
|
41
|
+
unencoded,
|
42
|
+
character_class,
|
43
|
+
leave_encoded
|
44
|
+
)
|
45
|
+
rescue ArgumentError
|
46
|
+
encoded = encode_component(unencoded)
|
47
|
+
end
|
48
|
+
encoded.force_encoding(Encoding::UTF_8)
|
49
|
+
encoded
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.normalized_path(path)
|
53
|
+
if path =~ Addressable::URI::NORMPATH
|
54
|
+
# Relative paths with colons in the first segment are ambiguous.
|
55
|
+
path = path.sub(":", "%2F")
|
56
|
+
end
|
57
|
+
# String#split(delimeter, -1) uses the more strict splitting behavior
|
58
|
+
# found by default in Python.
|
59
|
+
result = path.strip.split(Addressable::URI::SLASH, -1).map do |segment|
|
60
|
+
normalize_component(
|
61
|
+
segment,
|
62
|
+
Addressable::URI::CharacterClasses::PCHAR
|
63
|
+
)
|
64
|
+
end.join(Addressable::URI::SLASH)
|
65
|
+
|
66
|
+
# All normalized values should be UTF-8
|
67
|
+
result.force_encoding(Encoding::UTF_8)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/spec/uri_spec.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Files::URI do
|
4
|
+
describe "normalized_path" do
|
5
|
+
it { expect(described_class.normalized_path("[[strange stuff]]#yes.text")).to eq("%5B%5Bstrange%20stuff%5D%5D%23yes.text") }
|
6
|
+
it { expect(Addressable::URI.unencode_component(described_class.normalized_path("[[strange stuff]]#yes.text"))).to eq("[[strange stuff]]#yes.text") }
|
7
|
+
|
8
|
+
it { expect(described_class.normalized_path("folder/AdÇe")).to eq("folder/AdC%CC%A7e") }
|
9
|
+
it { expect(Addressable::URI.unencode_component(described_class.normalized_path("AdÇe"))).to eq("AdÇe") }
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: files.com
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.111
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- files.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -105,7 +105,7 @@ files:
|
|
105
105
|
- docs/file_action.md
|
106
106
|
- docs/file_comment.md
|
107
107
|
- docs/file_comment_reaction.md
|
108
|
-
- docs/
|
108
|
+
- docs/file_upload_part.md
|
109
109
|
- docs/file_utils.md
|
110
110
|
- docs/folder.md
|
111
111
|
- docs/group.md
|
@@ -170,7 +170,7 @@ files:
|
|
170
170
|
- lib/files.com/models/file_action.rb
|
171
171
|
- lib/files.com/models/file_comment.rb
|
172
172
|
- lib/files.com/models/file_comment_reaction.rb
|
173
|
-
- lib/files.com/models/
|
173
|
+
- lib/files.com/models/file_upload_part.rb
|
174
174
|
- lib/files.com/models/file_utils.rb
|
175
175
|
- lib/files.com/models/folder.rb
|
176
176
|
- lib/files.com/models/group.rb
|
@@ -211,12 +211,14 @@ files:
|
|
211
211
|
- lib/files.com/response.rb
|
212
212
|
- lib/files.com/sizable_io.rb
|
213
213
|
- lib/files.com/system_profiler.rb
|
214
|
+
- lib/files.com/uri.rb
|
214
215
|
- lib/files.com/util.rb
|
215
216
|
- lib/files.com/version.rb
|
216
217
|
- spec/list_spec.rb
|
217
218
|
- spec/models/file_spec.rb
|
218
219
|
- spec/models/folder_spec.rb
|
219
220
|
- spec/spec_helper.rb
|
221
|
+
- spec/uri_spec.rb
|
220
222
|
- test.sh
|
221
223
|
- test/test.rb
|
222
224
|
homepage: https://www.files.com
|
data/docs/file_part_upload.md
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# FilePartUpload
|
2
|
-
|
3
|
-
## Example FilePartUpload Object
|
4
|
-
|
5
|
-
```
|
6
|
-
{
|
7
|
-
"send": "",
|
8
|
-
"action": "upload/direct",
|
9
|
-
"ask_about_overwrites": true,
|
10
|
-
"available_parts": "",
|
11
|
-
"expires": "",
|
12
|
-
"headers": "",
|
13
|
-
"http_method": "POST",
|
14
|
-
"next_partsize": "",
|
15
|
-
"parallel_parts": true,
|
16
|
-
"parameters": "",
|
17
|
-
"part_number": "",
|
18
|
-
"partsize": "",
|
19
|
-
"path": "",
|
20
|
-
"ref": "upload-1",
|
21
|
-
"upload_uri": ""
|
22
|
-
}
|
23
|
-
```
|
24
|
-
|
25
|
-
* `send` (object): Content-Type and File to send
|
26
|
-
* `action` (string): Type of upload
|
27
|
-
* `ask_about_overwrites` (boolean): If false, rename conflicting files instead of asking for overwrite confirmation
|
28
|
-
* `available_parts` (string): Currently unused
|
29
|
-
* `expires` (string): Currently unused
|
30
|
-
* `headers` (object): Additional upload headers
|
31
|
-
* `http_method` (string): Upload method, usually POST
|
32
|
-
* `next_partsize` (string): Currently unused
|
33
|
-
* `parallel_parts` (boolean): If true, parts may be uploaded in parallel
|
34
|
-
* `parameters` (string): Additional upload parameters
|
35
|
-
* `part_number` (string): Currently unused
|
36
|
-
* `partsize` (string): Currently unused
|
37
|
-
* `path` (string): Upload path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
38
|
-
* `ref` (string): Reference name for this upload part
|
39
|
-
* `upload_uri` (string): URI to upload this part to
|