Skip to content

Commit d1dcd47

Browse files
committed
better transformFile
1 parent 20cbee9 commit d1dcd47

File tree

4 files changed

+20
-24
lines changed

4 files changed

+20
-24
lines changed

src/Concerns/InteractWithFiles.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,14 @@ public function moveFileTo(
180180
* Transform the media file inside a temporary directory while keeping the same Model
181181
* Usefull to optimize or convert the media file afterwards
182182
*
183-
* @param Closure(HttpFile $copy): HttpFile $transform
183+
* @param Closure(HttpFile $copy, \Spatie\TemporaryDirectory\TemporaryDirectory $temporaryDirectory): HttpFile $transform
184184
* @return $this
185185
*/
186186
public function transformFile(Closure $transform): static
187187
{
188188

189189
TemporaryDirectory::callback(function ($temporaryDirectory) use ($transform) {
190190

191-
/** Used to delete the old file */
192-
$clone = clone $this;
193-
194191
if (
195192
! $this->path ||
196193
! $this->disk ||
@@ -199,10 +196,10 @@ public function transformFile(Closure $transform): static
199196
return $this;
200197
}
201198

202-
$storage = Storage::build([
203-
'driver' => 'local',
204-
'root' => $temporaryDirectory->path(),
205-
]);
199+
/** Used to delete the old file at the end */
200+
$clone = clone $this;
201+
202+
$storage = TemporaryDirectory::storage($temporaryDirectory);
206203

207204
$copy = $this->copyFileTo(
208205
disk: $storage,
@@ -213,7 +210,10 @@ public function transformFile(Closure $transform): static
213210
return;
214211
}
215212

216-
$file = $transform(new HttpFile($storage->path($copy)));
213+
$file = $transform(
214+
new HttpFile($storage->path($copy)),
215+
$temporaryDirectory
216+
);
217217

218218
$result = $this->putFile(
219219
disk: $this->disk,

src/Definitions/MediaConversionDefinition.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use Elegantly\Media\TemporaryDirectory;
1010
use Illuminate\Contracts\Filesystem\Filesystem;
1111
use Illuminate\Foundation\Bus\PendingDispatch;
12-
use Illuminate\Support\Facades\Storage;
1312
use Spatie\TemporaryDirectory\TemporaryDirectory as SpatieTemporaryDirectory;
1413

1514
class MediaConversionDefinition
@@ -73,10 +72,7 @@ public function execute(Media $media, ?MediaConversion $parent): ?MediaConversio
7372
{
7473
return TemporaryDirectory::callback(function ($temporaryDirectory) use ($media, $parent) {
7574

76-
$storage = Storage::build([
77-
'driver' => 'local',
78-
'root' => $temporaryDirectory->path(),
79-
]);
75+
$storage = TemporaryDirectory::storage($temporaryDirectory);
8076

8177
$source = $parent ?? $media;
8278

src/Helpers/File.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44

55
use Elegantly\Media\Enums\MediaType;
66
use FFMpeg\Coordinate\Dimension;
7-
use Illuminate\Contracts\Filesystem\Filesystem;
87
use Illuminate\Http\File as HttpFile;
98
use Illuminate\Http\UploadedFile;
109
use Illuminate\Support\Facades\File as SupportFile;
1110
use Illuminate\Support\Facades\Storage;
1211
use Illuminate\Support\Str;
1312
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;
14-
use Spatie\TemporaryDirectory\TemporaryDirectory;
1513

1614
class File
1715
{
@@ -104,12 +102,4 @@ public static function extractFilename(string|HttpFile $file, ?string $name = nu
104102

105103
return "{$name}.{$extension}";
106104
}
107-
108-
public static function makeTemporaryDisk(TemporaryDirectory $directory): Filesystem
109-
{
110-
return Storage::build([
111-
'driver' => 'local',
112-
'root' => $directory->path(),
113-
]);
114-
}
115105
}

src/TemporaryDirectory.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace Elegantly\Media;
44

55
use Closure;
6+
use Illuminate\Contracts\Filesystem\Filesystem;
7+
use Illuminate\Support\Facades\Storage;
68
use Spatie\TemporaryDirectory\TemporaryDirectory as SpatieTemporaryDirectory;
79

810
class TemporaryDirectory extends SpatieTemporaryDirectory
@@ -36,4 +38,12 @@ public static function callback(
3638
return $value;
3739

3840
}
41+
42+
public static function storage(SpatieTemporaryDirectory $temporaryDirectory): Filesystem
43+
{
44+
return Storage::build([
45+
'driver' => 'local',
46+
'root' => $temporaryDirectory->path(),
47+
]);
48+
}
3949
}

0 commit comments

Comments
 (0)