cocoapods-s3 1.0.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 +7 -0
- data/lib/cocoapods-s3/downloader.rb +19 -0
- data/lib/cocoapods-s3/external_sources/podspec_source.rb +27 -0
- data/lib/cocoapods-s3/gem_version.rb +3 -0
- data/lib/cocoapods-s3/s3.rb +87 -0
- data/lib/cocoapods-s3.rb +1 -0
- data/lib/cocoapods_plugin.rb +14 -0
- metadata +93 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 453ad4856a240669e99edadfa04294dce7eb86b1c4dabe22ac5143b643640060
|
4
|
+
data.tar.gz: 21266de8b1233e93aa9a7c48eb22615d9bf5778c348011ee59ae5943c4ec2dd1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b42ab92da0c1ab1cc3e3ef7af1c60d5d6e156904efcae60b9276842ff4bc8ca2261383732c65fa56627bad57b6289302f81f9bf54781132ec8eafe58c320db9c
|
7
|
+
data.tar.gz: b1d551a6b3981da1b2d0ad821bcae85e14c7ffcb6d4ee91e09e313d0e870b987fdce008950050fcce6547310c78c288675fd8558429c954b4a4d9c9d6a5ec50e
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'cocoapods-s3/s3'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module Downloader
|
5
|
+
class <<self
|
6
|
+
alias_method :real_download_source, :download_source
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.download_source(target, params)
|
10
|
+
source = params[:http]
|
11
|
+
|
12
|
+
if !source.nil? and source.start_with?('s3')
|
13
|
+
params[:http] = Pod::Downloader::S3.sign_url(source)
|
14
|
+
end
|
15
|
+
|
16
|
+
self.real_download_source(target, params)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'cocoapods-s3/s3'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module ExternalSources
|
5
|
+
class PodspecSource < AbstractExternalSource
|
6
|
+
alias parent_podspec_uri podspec_uri
|
7
|
+
|
8
|
+
def podspec_uri
|
9
|
+
uri = parent_podspec_uri
|
10
|
+
|
11
|
+
if uri.start_with?('s3')
|
12
|
+
uri = podspec_uri_for_s3(uri)
|
13
|
+
end
|
14
|
+
|
15
|
+
uri
|
16
|
+
end
|
17
|
+
|
18
|
+
def podspec_uri_for_s3(uri)
|
19
|
+
unless uri.end_with?('.podspec')
|
20
|
+
uri = "#{uri}/#{name}.podspec"
|
21
|
+
end
|
22
|
+
|
23
|
+
Pod::Downloader::S3.sign_url(uri)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'aws-sdk-s3'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module Downloader
|
5
|
+
class S3
|
6
|
+
@_access_key = nil
|
7
|
+
@_secret_key = nil
|
8
|
+
@_region = nil
|
9
|
+
@_client = nil
|
10
|
+
|
11
|
+
def self.set_credentials(access_key, secret_key, region: 'us-east-1')
|
12
|
+
@_access_key = access_key
|
13
|
+
@_secret_key = secret_key
|
14
|
+
@_region = region || 'us-east-1'
|
15
|
+
|
16
|
+
# Reset the client so it will be recreated with the new credentials
|
17
|
+
# the next time that it is used.
|
18
|
+
@_client = nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.get_client
|
22
|
+
@_client ||= Aws::S3::Client.new(
|
23
|
+
region: @_region,
|
24
|
+
access_key_id: @_access_key,
|
25
|
+
secret_access_key: @_secret_key,
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.sign_url(url)
|
30
|
+
bucket, key = _slice_url(url)
|
31
|
+
|
32
|
+
Aws::S3::Presigner.new(client: get_client).presigned_url(
|
33
|
+
:get_object, bucket: bucket, key: key, expires_in: 120
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.list_objects(url: nil, bucket: nil, key: nil)
|
38
|
+
bucket, key = _get_bucket_and_key(url, bucket, key)
|
39
|
+
|
40
|
+
unless key.end_with? '/'
|
41
|
+
key = "#{key}/"
|
42
|
+
end
|
43
|
+
|
44
|
+
get_client.list_objects_v2({
|
45
|
+
bucket: bucket,
|
46
|
+
prefix: key,
|
47
|
+
delimiter: "/",
|
48
|
+
})
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.get_object(target: nil, url: nil, bucket: nil, key: nil)
|
52
|
+
bucket, key = _get_bucket_and_key(url, bucket, key)
|
53
|
+
|
54
|
+
response = get_client.get_object({
|
55
|
+
response_target: target,
|
56
|
+
bucket: bucket,
|
57
|
+
key: key,
|
58
|
+
})
|
59
|
+
|
60
|
+
if target.nil?
|
61
|
+
return response.body.string
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def self._get_bucket_and_key(url, bucket, key)
|
66
|
+
unless url.nil?
|
67
|
+
return _slice_url(url)
|
68
|
+
end
|
69
|
+
|
70
|
+
return bucket, key
|
71
|
+
end
|
72
|
+
|
73
|
+
def self._slice_url(url)
|
74
|
+
# Remove s3:// substring and split by /
|
75
|
+
parts = url[5..-1].split('/')
|
76
|
+
|
77
|
+
[
|
78
|
+
# bucket: The first element in the url is the bucket.
|
79
|
+
parts[0],
|
80
|
+
|
81
|
+
# key: The rest of components in the url are the key of the object to download.
|
82
|
+
parts[1..-1].join('/')
|
83
|
+
]
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/lib/cocoapods-s3.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'cocoapods-s3/gem_version'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'cocoapods-s3/downloader'
|
2
|
+
require 'cocoapods-s3/external_sources/podspec_source'
|
3
|
+
|
4
|
+
def set_aws_credentials(access_key:, secret_key:, region: 'us-east-1')
|
5
|
+
Pod::Downloader::S3.set_credentials access_key, secret_key, :region => region
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_s3_object(url:, target: nil)
|
9
|
+
Pod::Downloader::S3.get_object :url => url, :target => target
|
10
|
+
end
|
11
|
+
|
12
|
+
def list_s3_objects(url:)
|
13
|
+
Pod::Downloader::S3.list_objects :url => url
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cocoapods-s3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- PlayON Network Team
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-06-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: aws-sdk-s3
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1'
|
55
|
+
description: This Cocoapods plugin allows you to use dependencies from a bucket in
|
56
|
+
AWS S3.
|
57
|
+
email:
|
58
|
+
- devs@playon.network
|
59
|
+
executables: []
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- lib/cocoapods-s3.rb
|
64
|
+
- lib/cocoapods-s3/downloader.rb
|
65
|
+
- lib/cocoapods-s3/external_sources/podspec_source.rb
|
66
|
+
- lib/cocoapods-s3/gem_version.rb
|
67
|
+
- lib/cocoapods-s3/s3.rb
|
68
|
+
- lib/cocoapods_plugin.rb
|
69
|
+
homepage: https://playon.network
|
70
|
+
licenses:
|
71
|
+
- Apache-2.0
|
72
|
+
metadata: {}
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
requirements: []
|
88
|
+
rubygems_version: 3.2.3
|
89
|
+
signing_key:
|
90
|
+
specification_version: 4
|
91
|
+
summary: This Cocoapods plugin allows you to use dependencies from a bucket in AWS
|
92
|
+
S3.
|
93
|
+
test_files: []
|