lhj-tools 0.2.63 → 0.2.64
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/lib/lhj/command/oss/download.rb +16 -2
- data/lib/lhj/command/oss/list.rb +18 -11
- data/lib/lhj/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0de734ea2fe45a654cbde025268b400ff16becedddf5a8340f1ad4f6d9ea54df
|
|
4
|
+
data.tar.gz: 1efd0f01fffd19a3d89f7e62de250fb602b0b7300fc3772de0b1d30f59e66ffa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 592fd748fd75a73788f1ee020687a6c7742a444ed4e69f31867dcfdf7feec0cd5d535bbb756354b5e995e1129ccec84e66f6198669d8918d67ddac3ef35f633b
|
|
7
|
+
data.tar.gz: 864226db596b7811dae68baf5ebf037690f4bced76b2cc3bc81159d88d165cee4f63840748270a5ae3f4051d48635a170e62dd73286d1f68c1be46c14d87a2e2
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
require 'lhj/helper/oss_helper'
|
|
4
4
|
require 'highline'
|
|
5
|
+
require 'faraday'
|
|
6
|
+
require 'faraday_middleware'
|
|
5
7
|
|
|
6
8
|
module Lhj
|
|
7
9
|
class Command
|
|
@@ -69,12 +71,24 @@ module Lhj
|
|
|
69
71
|
|
|
70
72
|
def download_with_key(oss_key)
|
|
71
73
|
puts "下载的key为:#{oss_key}".yellow
|
|
72
|
-
file_key = oss_key.split('/').last
|
|
74
|
+
file_key = oss_key.split(/\?/)[0].split('/').last
|
|
73
75
|
file = File.join(@current_path, file_key)
|
|
74
76
|
File.rename(file_key, "#{file_key}.bak") if File.exist?(file_key)
|
|
75
|
-
|
|
77
|
+
if %r{^https://} =~ oss_key || %r{^http://} =~ oss_key
|
|
78
|
+
download_file(oss_key, file)
|
|
79
|
+
else
|
|
80
|
+
Lhj::OSS::Helper.instance.down_load(oss_key, file)
|
|
81
|
+
end
|
|
76
82
|
puts "下载文件到目录: #{file}\n".yellow
|
|
77
83
|
end
|
|
84
|
+
|
|
85
|
+
def download_file(url, file)
|
|
86
|
+
http_client = Faraday.new do |c|
|
|
87
|
+
c.adapter Faraday.default_adapter
|
|
88
|
+
end
|
|
89
|
+
response = http_client.get(url)
|
|
90
|
+
File.open(file, 'wb') { |fp| fp.write(response.body) }
|
|
91
|
+
end
|
|
78
92
|
end
|
|
79
93
|
end
|
|
80
94
|
end
|
data/lib/lhj/command/oss/list.rb
CHANGED
|
@@ -7,17 +7,18 @@ module Lhj
|
|
|
7
7
|
class List < OSS
|
|
8
8
|
|
|
9
9
|
self.arguments = [
|
|
10
|
-
CLAide::Argument.new(%(--save, --clear), false, false),
|
|
10
|
+
CLAide::Argument.new(%(--save, --clear, --output_suffix), false, false),
|
|
11
11
|
CLAide::Argument.new(%(--all_folder, --prefix, --marker), false, false)
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
self.description = <<-DESC
|
|
15
|
-
查看OSS对象列表
|
|
16
|
-
--save 保存文件oss_key.yml与oss_url.yml到当前目录
|
|
17
|
-
--clear 清空控制台输出,当oss数量较多时使用,配合save使用
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
15
|
+
查看OSS对象列表 \n
|
|
16
|
+
--save 保存文件oss_key.yml与oss_url.yml到当前目录 \n
|
|
17
|
+
--clear 清空控制台输出,当oss数量较多时使用,配合save使用 \n
|
|
18
|
+
--output_suffix 添加后缀输出控制台,如?x-oss-process=image/watermark,image_YXBwbGUucG5n \n
|
|
19
|
+
--all_folder 则会添加 delimiter='/',只用于查看oss的目录结构 \n
|
|
20
|
+
--prefix 添加oss的前缀过滤 \n
|
|
21
|
+
--marker 参数可以指定从该位置开始list
|
|
21
22
|
DESC
|
|
22
23
|
|
|
23
24
|
def self.options
|
|
@@ -26,7 +27,7 @@ module Lhj
|
|
|
26
27
|
%w[--clear 清空控制台输出],
|
|
27
28
|
%w[--all_folder 列出所有的子目录],
|
|
28
29
|
%w[--prefix 前缀过滤],
|
|
29
|
-
%w[--marker
|
|
30
|
+
%w[--marker 指定从该位置开始list]
|
|
30
31
|
]
|
|
31
32
|
end
|
|
32
33
|
|
|
@@ -35,6 +36,7 @@ module Lhj
|
|
|
35
36
|
@clear = argv.flag?('clear', false)
|
|
36
37
|
@all_folder = argv.flag?('all_folder', false)
|
|
37
38
|
@prefix = argv.option('prefix')
|
|
39
|
+
@output_suffix = argv.option('output_suffix')
|
|
38
40
|
@marker = argv.option('marker')
|
|
39
41
|
@current_path = argv.shift_argument || Dir.pwd
|
|
40
42
|
super
|
|
@@ -53,7 +55,8 @@ module Lhj
|
|
|
53
55
|
end
|
|
54
56
|
|
|
55
57
|
def save(obj_keys)
|
|
56
|
-
obj_urls = obj_keys.map { |k| "#{Lhj::OSS::Helper.instance.url_path}/#{k}" }
|
|
58
|
+
obj_urls = obj_keys.sort { |a, b| a.slice(/\..*/) <=> b.slice(/\..*/) }.map { |k| "#{Lhj::OSS::Helper.instance.url_path}/#{k}" }
|
|
59
|
+
obj_urls = obj_urls.map { |k| "#{k}#{@output_suffix}" } if @output_suffix
|
|
57
60
|
FileUtils.chdir(@current_path) do
|
|
58
61
|
File.write('oss_key.yml', obj_keys.to_yaml)
|
|
59
62
|
File.write('oss_url.yml', obj_urls.to_yaml) unless @all_folder
|
|
@@ -63,8 +66,12 @@ module Lhj
|
|
|
63
66
|
def print(obj_keys)
|
|
64
67
|
rows = []
|
|
65
68
|
obj_keys.each_with_index do |k, i|
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
if @all_folder
|
|
70
|
+
path = k
|
|
71
|
+
else
|
|
72
|
+
path = "#{i}.#{Lhj::OSS::Helper.instance.url_path}/#{k}"
|
|
73
|
+
path = "#{path}#{@output_suffix}" if @output_suffix
|
|
74
|
+
end
|
|
68
75
|
rows << [path]
|
|
69
76
|
end
|
|
70
77
|
table = Terminal::Table.new title: 'OSS List', headings: ['URL'], rows: rows
|
data/lib/lhj/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lhj-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.64
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- lihaijian
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-10-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: xcodeproj
|