class ICFS::UsersS3
Implements {ICFS::Users Users} from AWS S3
Public Class Methods
new(s3, bucket, prefix=nil)
click to toggle source
New instance
@param s3 [Aws::S3::Client] the configured S3 client @param bucket [String] The bucket name @param prefix [String] Prefix to use for object keys
# File lib/icfs/users_s3.rb, line 30 def initialize(s3, bucket, prefix=nil) @s3 = s3 @bck = bucket @pre = prefix || '' end
Public Instance Methods
flush(urg)
click to toggle source
(see Users#flush
)
# File lib/icfs/users_s3.rb, line 49 def flush(urg); false; end
read(urg)
click to toggle source
(see Users#read
)
# File lib/icfs/users_s3.rb, line 55 def read(urg) Items.validate(urg, 'User/Role/Group name', Items::FieldUsergrp) json = @s3.get_object( bucket: @bck, key: _path(urg) ).body.read return JSON.parse(json) rescue return nil end
write(obj)
click to toggle source
(see Users#write
)
# File lib/icfs/users_s3.rb, line 67 def write(obj) Items.validate(obj, 'User/Role/Group', Users::ValUser) json = JSON.pretty_generate(obj) @s3.put_object( bucket: @bck, key: _path(obj['name']), body: json ) end
Private Instance Methods
_path(user)
click to toggle source
Where to store user
# File lib/icfs/users_s3.rb, line 40 def _path(user) @pre + user + '.json' end