@@ -44,6 +44,7 @@ trait S3ObjectTrait {
44
44
abstract protected function getConnection ();
45
45
46
46
abstract protected function getCertificateBundlePath (): ?string ;
47
+ abstract protected function getSSECParameters (bool $ copy = false ): array ;
47
48
48
49
/**
49
50
* @param string $urn the unified resource name used to identify the object
@@ -58,7 +59,7 @@ public function readObject($urn) {
58
59
'Bucket ' => $ this ->bucket ,
59
60
'Key ' => $ urn ,
60
61
'Range ' => 'bytes= ' . $ range ,
61
- ]);
62
+ ] + $ this -> getSSECParameters () );
62
63
$ request = \Aws \serialize ($ command );
63
64
$ headers = [];
64
65
foreach ($ request ->getHeaders () as $ key => $ values ) {
@@ -105,7 +106,7 @@ protected function writeSingle(string $urn, StreamInterface $stream, string $mim
105
106
'Body ' => $ stream ,
106
107
'ACL ' => 'private ' ,
107
108
'ContentType ' => $ mimetype ,
108
- ]);
109
+ ] + $ this -> getSSECParameters () );
109
110
}
110
111
111
112
@@ -124,7 +125,7 @@ protected function writeMultiPart(string $urn, StreamInterface $stream, string $
124
125
'part_size ' => $ this ->uploadPartSize ,
125
126
'params ' => [
126
127
'ContentType ' => $ mimetype
127
- ],
128
+ ] + $ this -> getSSECParameters () ,
128
129
]);
129
130
130
131
try {
@@ -179,10 +180,12 @@ public function deleteObject($urn) {
179
180
}
180
181
181
182
public function objectExists ($ urn ) {
182
- return $ this ->getConnection ()->doesObjectExist ($ this ->bucket , $ urn );
183
+ return $ this ->getConnection ()->doesObjectExist ($ this ->bucket , $ urn, $ this -> getSSECParameters () );
183
184
}
184
185
185
186
public function copyObject ($ from , $ to ) {
186
- $ this ->getConnection ()->copy ($ this ->getBucket (), $ from , $ this ->getBucket (), $ to );
187
+ $ this ->getConnection ()->copy ($ this ->getBucket (), $ from , $ this ->getBucket (), $ to , 'private ' , [
188
+ 'params ' => $ this ->getSSECParameters () + $ this ->getSSECParameters (true )
189
+ ]);
187
190
}
188
191
}
0 commit comments