lhj-tools 0.2.63 → 0.2.64
Sign up to get free protection for your applications and to get access to all the features.
- 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
|