@@ -44,6 +44,7 @@ trait S3ObjectTrait {
4444 abstract protected function getConnection ();
4545
4646 abstract protected function getCertificateBundlePath (): ?string ;
47+ abstract protected function getSSECParameters (bool $ copy = false ): array ;
4748
4849 /**
4950 * @param string $urn the unified resource name used to identify the object
@@ -58,7 +59,7 @@ public function readObject($urn) {
5859 'Bucket ' => $ this ->bucket ,
5960 'Key ' => $ urn ,
6061 'Range ' => 'bytes= ' . $ range ,
61- ]);
62+ ] + $ this -> getSSECParameters () );
6263 $ request = \Aws \serialize ($ command );
6364 $ headers = [];
6465 foreach ($ request ->getHeaders () as $ key => $ values ) {
@@ -106,7 +107,7 @@ protected function writeSingle(string $urn, StreamInterface $stream, string $mim
106107 'ACL ' => 'private ' ,
107108 'ContentType ' => $ mimetype ,
108109 'StorageClass ' => $ this ->storageClass ,
109- ]);
110+ ] + $ this -> getSSECParameters () );
110111 }
111112
112113
@@ -126,7 +127,7 @@ protected function writeMultiPart(string $urn, StreamInterface $stream, string $
126127 'params ' => [
127128 'ContentType ' => $ mimetype ,
128129 'StorageClass ' => $ this ->storageClass ,
129- ],
130+ ] + $ this -> getSSECParameters () ,
130131 ]);
131132
132133 try {
@@ -181,10 +182,12 @@ public function deleteObject($urn) {
181182 }
182183
183184 public function objectExists ($ urn ) {
184- return $ this ->getConnection ()->doesObjectExist ($ this ->bucket , $ urn );
185+ return $ this ->getConnection ()->doesObjectExist ($ this ->bucket , $ urn, $ this -> getSSECParameters () );
185186 }
186187
187188 public function copyObject ($ from , $ to ) {
188- $ this ->getConnection ()->copy ($ this ->getBucket (), $ from , $ this ->getBucket (), $ to );
189+ $ this ->getConnection ()->copy ($ this ->getBucket (), $ from , $ this ->getBucket (), $ to , 'private ' , [
190+ 'params ' => $ this ->getSSECParameters () + $ this ->getSSECParameters (true )
191+ ]);
189192 }
190193}
0 commit comments