@@ -46,9 +46,10 @@ def get_s3_access(remote_opts)
46
46
keysecret = accesskey . fetch ( 'secret' )
47
47
# get an instance of the S3 interface.
48
48
creds = Aws ::Credentials . new ( keypublic , keysecret )
49
- s3 = Aws ::S3 ::Client . new ( region : awsregion , credentials : creds )
50
- # return s3 object
51
- return s3
49
+ s3clt = Aws ::S3 ::Client . new ( region : awsregion , credentials : creds )
50
+ s3res = Aws ::S3 ::Resource . new ( :access_key_id => keypublic , :secret_access_key => keysecret , :region => awsregion )
51
+ # return s3 objects
52
+ return s3clt , s3res
52
53
end
53
54
54
55
# Return list of file names found in this bucket for this type of backup
@@ -58,8 +59,8 @@ def list(entrydata)
58
59
basename = entrydata [ 'bakfile_basename' ]
59
60
bucketdata = remote_opts . fetch ( 's3_bucket' )
60
61
bucketname = bucketdata . fetch ( 'bucket' )
61
- s3 = get_s3_access ( remote_opts )
62
- allobjs = s3 . list_objects ( { bucket : bucketname } ) . contents # all objects including checksums files
62
+ s3clt , s3res = get_s3_access ( remote_opts )
63
+ allobjs = s3clt . list_objects ( { bucket : bucketname } ) . contents # all objects including checksums files
63
64
coreobj = allobjs . select { |obj | ( ( obj . key =~ /#{ basename } -(\d {8})/ ) and ( Checksum . checksum? ( obj . key ) == false ) ) }
64
65
coreobj . each do |obj |
65
66
bakfile = Bakfile . new
@@ -82,20 +83,18 @@ def send(entrydata, fullpath)
82
83
remote_opts = entrydata . fetch ( 'remote_opts' )
83
84
bucketdata = remote_opts . fetch ( 's3_bucket' )
84
85
bucketname = bucketdata . fetch ( 'bucket' )
85
- s3 = get_s3_access ( remote_opts )
86
+ s3clt , s3res = get_s3_access ( remote_opts )
86
87
filename = File . basename ( fullpath )
87
- File . open ( fullpath , 'rb' ) do |file |
88
- s3 . put_object ( bucket : bucketname , key : filename , body : file )
89
- end
88
+ s3res . bucket ( bucketname ) . object ( filename ) . upload_file ( fullpath )
90
89
end
91
90
92
91
# Delete a file in the bucket
93
92
def delete ( entrydata , filename )
94
93
remote_opts = entrydata . fetch ( 'remote_opts' )
95
94
bucketdata = remote_opts . fetch ( 's3_bucket' )
96
95
bucketname = bucketdata . fetch ( 'bucket' )
97
- s3 = get_s3_access ( remote_opts )
98
- s3 . delete_object ( { bucket : bucketname , key : filename } )
96
+ s3clt , s3res = get_s3_access ( remote_opts )
97
+ s3clt . delete_object ( { bucket : bucketname , key : filename } )
99
98
end
100
99
101
100
end
0 commit comments