diff --git a/SpacesAPI/Space.php b/SpacesAPI/Space.php index cffcbde..74a7230 100644 --- a/SpacesAPI/Space.php +++ b/SpacesAPI/Space.php @@ -302,16 +302,20 @@ class Space * Upload a file * * @param string $filepath The path to the file, including the filename. Relative and absolute paths are accepted. + * @param string $mimeType The file mime type to pass as ContentType for the file (e.g. 'image/jpeg'). * @param string|null $filename The remote filename. If `null`, the local filename will be used. + * @param bool $private True for the file to be private, false to allow public access. * * @return \SpacesAPI\File */ - public function uploadFile(string $filepath, ?string $filename = null): File + public function uploadFile(string $filepath, string $mimeType, ?string $filename = null, bool $private = true): File { $this->s3->putObject([ 'Bucket' => $this->name, 'Key' => ($filename) ?: basename($filepath), 'SourceFile' => $filepath, + 'ContentType' => $mimeType, + 'ACL' => ($private) ? 'private' : 'public-read' ]); return new File($this, ($filename) ?: basename($filepath), [], false); diff --git a/tests/SpaceTest.php b/tests/SpaceTest.php index f416539..0ccccef 100644 --- a/tests/SpaceTest.php +++ b/tests/SpaceTest.php @@ -82,7 +82,7 @@ class SpaceTest extends TestCase public function testCanUploadFile() { $tmpFile = tempnam(sys_get_temp_dir(), 'spaces-test'); - $file = self::$space->uploadFile($tmpFile, 'upload-test.txt'); + $file = self::$space->uploadFile($tmpFile, 'text/plain', 'upload-test.txt', false); $this->assertInstanceOf(File::class, $file); }