Class: Aws::S3::Encryption::Client
- Inherits:
-
Object
- Object
- Aws::S3::Encryption::Client
- Extended by:
- Deprecations, Forwardable
- Defined in:
- lib/aws-sdk-s3/encryption/client.rb
Instance Attribute Summary collapse
- #client ⇒ S3::Client readonly
- #envelope_location ⇒ Symbol<:metadata, :instruction_file> readonly
-
#instruction_file_suffix ⇒ String
readonly
When #envelope_location is ‘:instruction_file`, the envelope is stored in the object with the object key suffixed by this string.
-
#key_provider ⇒ KeyProvider?
readonly
Returns ‘nil` if you are using AWS Key Management Service (KMS).
Instance Method Summary collapse
-
#get_object(params = {}, &block) ⇒ Types::GetObjectOutput
Gets an object from Amazon S3, decrypting data locally.
-
#initialize(options = {}) ⇒ Client
constructor
Creates a new encryption client.
-
#put_object(params = {}) ⇒ Types::PutObjectOutput
Uploads an object to Amazon S3, encrypting data client-side.
Constructor Details
#initialize(options = {}) ⇒ Client
Creates a new encryption client. You must provide one of the following options:
-
‘:encryption_key`
-
‘:kms_key_id`
-
‘:key_provider`
You may also pass any other options accepted by ‘Client#initialize`.
230 231 232 233 234 235 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 230 def initialize( = {}) @client = extract_client() @cipher_provider = cipher_provider() @envelope_location = extract_location() @instruction_file_suffix = extract_suffix() end |
Instance Attribute Details
#client ⇒ S3::Client (readonly)
245 246 247 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 245 def client @client end |
#envelope_location ⇒ Symbol<:metadata, :instruction_file> (readonly)
252 253 254 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 252 def envelope_location @envelope_location end |
#instruction_file_suffix ⇒ String (readonly)
Returns When #envelope_location is ‘:instruction_file`, the envelope is stored in the object with the object key suffixed by this string.
257 258 259 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 257 def instruction_file_suffix @instruction_file_suffix end |
#key_provider ⇒ KeyProvider? (readonly)
Returns ‘nil` if you are using AWS Key Management Service (KMS).
249 250 251 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 249 def key_provider @key_provider end |
Instance Method Details
#get_object(params = {}, &block) ⇒ Types::GetObjectOutput
The ‘:range` request parameter is not yet supported.
Gets an object from Amazon S3, decrypting data locally. See Client#get_object for documentation on accepted request parameters.
289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 289 def get_object(params = {}, &block) if params[:range] raise NotImplementedError, '#get_object with :range not supported yet' end envelope_location, instruction_file_suffix = (params) req = @client.build_request(:get_object, params) req.handlers.add(DecryptHandler) req.context[:encryption] = { cipher_provider: @cipher_provider, envelope_location: envelope_location, instruction_file_suffix: instruction_file_suffix, } req.send_request(target: block) end |
#put_object(params = {}) ⇒ Types::PutObjectOutput
Uploads an object to Amazon S3, encrypting data client-side. See Client#put_object for documentation on accepted request parameters.
265 266 267 268 269 270 271 272 273 274 |
# File 'lib/aws-sdk-s3/encryption/client.rb', line 265 def put_object(params = {}) req = @client.build_request(:put_object, params) req.handlers.add(EncryptHandler, priority: 95) req.context[:encryption] = { cipher_provider: @cipher_provider, envelope_location: @envelope_location, instruction_file_suffix: @instruction_file_suffix, } req.send_request end |