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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77f66fd979d6fe1773bd9c603fda0dd2cbb1b3107267d64ded1360377e573b2f
4
- data.tar.gz: 50d1e50e766fe708bde20971ab1235437514a3680abacc286ed2ca91d37eba57
3
+ metadata.gz: 0de734ea2fe45a654cbde025268b400ff16becedddf5a8340f1ad4f6d9ea54df
4
+ data.tar.gz: 1efd0f01fffd19a3d89f7e62de250fb602b0b7300fc3772de0b1d30f59e66ffa
5
5
  SHA512:
6
- metadata.gz: dde586d855c8c511510922f81699041945fcb4efe834d786cbebbd52beee3440236db020568d38c906587eeddb62cf8760a6727c1cfbe2fc878dfa36c89fd88d
7
- data.tar.gz: 4de47cd395f046a096215ff2b5fde89761ae19f2e03bc8c57ba5819924ae974e58e80cb22a7bc9d55f747153d88760768ea82b52a6e5f1d9b4224e26312c1f80
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
- Lhj::OSS::Helper.instance.down_load(oss_key, file)
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
@@ -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
- --all_folder 则会添加 delimiter='/',只用于查看oss的目录结构
19
- --prefix 添加oss的前缀过滤
20
- --marker 会改oss key值,会输出key之后的oss列表
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 key之后的列表数据]
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
- path = "#{i}.#{Lhj::OSS::Helper.instance.url_path}/#{k}" unless @all_folder
67
- path = k if @all_folder
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lhj
4
- VERSION = '0.2.63'
4
+ VERSION = '0.2.64'
5
5
  end
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.63
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-09-27 00:00:00.000000000 Z
11
+ date: 2023-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj