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 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