brick_ftp 0.7.0 → 0.7.1
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/CHANGELOG.md +16 -2
- data/lib/brick_ftp.rb +2 -0
- data/lib/brick_ftp/api/file_operation/uploading_result.rb +22 -0
- data/lib/brick_ftp/api/file_operation/uploading_session.rb +85 -0
- data/lib/brick_ftp/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a0069f587ef3fe9093bac0c8226af17eecc3634cb461bee69b2de18748b6b1f
|
4
|
+
data.tar.gz: 31a6d9bb6e85cfe8fec3f246c97bc38632b42fdd1a3f6191f09f4e82948c89a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ccbfa02cab23edd32e91400fc5bc3fc1a0ec75dbe9e763024249c7271d78abede39074994fe1bae73e613f7f09f6c44761bb392f16bb8d1ff92831e0da4d98d
|
7
|
+
data.tar.gz: 68cd755ff67fcb37d21ca17743d2df51ceceebbf54f0afb24d38459f92c848df4b8043db36345a47376107224a0f94473dbbdfc6fc2df5e43b4d47e382d7a21d
|
data/CHANGELOG.md
CHANGED
@@ -2,10 +2,10 @@ Changelog
|
|
2
2
|
====
|
3
3
|
|
4
4
|
|
5
|
-
[unreleased](https://github.com/koshigoe/brick_ftp/compare/v0.7.
|
5
|
+
[unreleased](https://github.com/koshigoe/brick_ftp/compare/v0.7.1...master)
|
6
6
|
----
|
7
7
|
|
8
|
-
[Full Changelog](https://github.com/koshigoe/brick_ftp/compare/v0.7.
|
8
|
+
[Full Changelog](https://github.com/koshigoe/brick_ftp/compare/v0.7.1...master)
|
9
9
|
|
10
10
|
### Enhancements:
|
11
11
|
|
@@ -14,6 +14,20 @@ Changelog
|
|
14
14
|
### Breaking Changes:
|
15
15
|
|
16
16
|
|
17
|
+
[v0.7.1](https://github.com/koshigoe/brick_ftp/compare/v0.7.0...v0.7.1)
|
18
|
+
----
|
19
|
+
|
20
|
+
[Full Changelog](https://github.com/koshigoe/brick_ftp/compare/v0.7.0...v0.7.1)
|
21
|
+
|
22
|
+
### Enhancements:
|
23
|
+
|
24
|
+
- [#89](https://github.com/koshigoe/brick_ftp/pull/89) [Experimental] Allow to execute each steps of multi part uploading.
|
25
|
+
|
26
|
+
### Fixed Bugs:
|
27
|
+
|
28
|
+
### Breaking Changes:
|
29
|
+
|
30
|
+
|
17
31
|
[v0.7.0](https://github.com/koshigoe/brick_ftp/compare/v0.6.1...v0.7.0)
|
18
32
|
----
|
19
33
|
|
data/lib/brick_ftp.rb
CHANGED
@@ -33,6 +33,8 @@ require 'brick_ftp/api/file_operation'
|
|
33
33
|
require 'brick_ftp/api/file_operation/move'
|
34
34
|
require 'brick_ftp/api/file_operation/copy'
|
35
35
|
require 'brick_ftp/api/file_operation/upload'
|
36
|
+
require 'brick_ftp/api/file_operation/uploading_session'
|
37
|
+
require 'brick_ftp/api/file_operation/uploading_result'
|
36
38
|
require 'brick_ftp/api/site_usage'
|
37
39
|
require 'brick_ftp/webhook'
|
38
40
|
require 'brick_ftp/webhook/request'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module BrickFTP
|
2
|
+
module API
|
3
|
+
module FileOperation
|
4
|
+
class UploadingResult < BrickFTP::API::Base
|
5
|
+
endpoint :post, :create, '/api/rest/v1/files/%{path}'
|
6
|
+
|
7
|
+
attribute :path
|
8
|
+
attribute :type
|
9
|
+
attribute :size
|
10
|
+
attribute :mtime
|
11
|
+
attribute :crc32
|
12
|
+
attribute :md5
|
13
|
+
|
14
|
+
def self.create(path:, ref:)
|
15
|
+
api_client = BrickFTP::HTTPClient.new
|
16
|
+
res = api_client.post(api_path_for(:create, path: path), params: { action: 'end', ref: ref })
|
17
|
+
new(res.symbolize_keys)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module BrickFTP
|
2
|
+
module API
|
3
|
+
module FileOperation
|
4
|
+
class UploadingSession < BrickFTP::API::Base
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
endpoint :post, :create, '/api/rest/v1/files/%{path}'
|
8
|
+
|
9
|
+
attribute :ref
|
10
|
+
attribute :http_method
|
11
|
+
attribute :upload_uri
|
12
|
+
attribute :partsize
|
13
|
+
attribute :part_number
|
14
|
+
attribute :available_parts
|
15
|
+
attribute :headers
|
16
|
+
attribute :parameters
|
17
|
+
attribute :send
|
18
|
+
attribute :path
|
19
|
+
attribute :action
|
20
|
+
attribute :ask_about_overwrites
|
21
|
+
attribute :expires
|
22
|
+
attribute :next_partsize
|
23
|
+
attribute :provided_mtime
|
24
|
+
attribute :permission
|
25
|
+
|
26
|
+
# Get uploading URL.
|
27
|
+
#
|
28
|
+
# @see https://brickftp.com/docs/rest-api/file-uploading/
|
29
|
+
# @param [String] path Remote file path.
|
30
|
+
# @return [BrickFTP::API::FileOperation::UploadingSession] A session object of uploading file.
|
31
|
+
#
|
32
|
+
def self.create(path:)
|
33
|
+
api_client = BrickFTP::HTTPClient.new
|
34
|
+
res = api_client.post(api_path_for(:create, path: path), params: { action: 'put' })
|
35
|
+
new(res.symbolize_keys)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Upload data.
|
39
|
+
#
|
40
|
+
# @param [String] upload_uri A uplading URL.
|
41
|
+
# @param [IO] data An IO object to upload.
|
42
|
+
#
|
43
|
+
def self.upload(upload_uri:, data:)
|
44
|
+
uri = URI.parse(upload_uri)
|
45
|
+
upload_client = BrickFTP::HTTPClient.new(uri.host)
|
46
|
+
upload_client.put(uri.to_s, params: data)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Get uploading URL for multi part uploading.
|
50
|
+
#
|
51
|
+
# @param [Integer] part_number The part number.
|
52
|
+
# @return [BrickFTP::API::FileOperation::UploadingSession] A session object of uploading file.
|
53
|
+
#
|
54
|
+
def at(part_number)
|
55
|
+
params = { action: 'put', ref: ref, part: part_number }
|
56
|
+
api_client = BrickFTP::HTTPClient.new
|
57
|
+
res = api_client.post(self.class.api_path_for(:create, path: path), params: params)
|
58
|
+
self.class.new(res.symbolize_keys)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Get each uploading URLs.
|
62
|
+
#
|
63
|
+
# @yield [session] Gives uploading session object to the block.
|
64
|
+
# @yieldparam [BrickFTP::API::FileOperation::UploadingSession] session A session object of uploading file.
|
65
|
+
#
|
66
|
+
def each
|
67
|
+
return enum_for(__method__) unless block_given?
|
68
|
+
|
69
|
+
yield self
|
70
|
+
(part_number + 1).upto(available_parts) do |n|
|
71
|
+
yield at(n)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Complete uploading file.
|
76
|
+
#
|
77
|
+
# @return [BrickFTP::API::FileOperation::UploadingResult] A result of uploading file.
|
78
|
+
#
|
79
|
+
def commit
|
80
|
+
UploadingResult.create(path: path, ref: ref)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/brick_ftp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brick_ftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- koshigoe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -202,6 +202,8 @@ files:
|
|
202
202
|
- lib/brick_ftp/api/file_operation/copy.rb
|
203
203
|
- lib/brick_ftp/api/file_operation/move.rb
|
204
204
|
- lib/brick_ftp/api/file_operation/upload.rb
|
205
|
+
- lib/brick_ftp/api/file_operation/uploading_result.rb
|
206
|
+
- lib/brick_ftp/api/file_operation/uploading_session.rb
|
205
207
|
- lib/brick_ftp/api/folder.rb
|
206
208
|
- lib/brick_ftp/api/folder_behavior.rb
|
207
209
|
- lib/brick_ftp/api/group.rb
|