-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathAppendObject.php
45 lines (40 loc) · 1.15 KB
/
AppendObject.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
namespace AlphaSnow\LaravelFilesystem\Aliyun\Macros;
use AlphaSnow\Flysystem\Aliyun\AliyunException;
use AlphaSnow\LaravelFilesystem\Aliyun\OssClientAdapter;
use Illuminate\Filesystem\FilesystemAdapter;
use OSS\Core\OssException;
use Closure;
class AppendObject implements AliyunMacro
{
/**
* @return string
*/
public function name(): string
{
return "appendObject";
}
/**
* @return Closure
*/
public function macro(): Closure
{
return function (string $path, string $content, int $position = 0, array $options = []) {
/**
* @var FilesystemAdapter $this
*/
$adapter = new OssClientAdapter($this);
try {
return $adapter->client()->appendObject(
$adapter->bucket(),
$adapter->path($path),
$content,
$position,
$adapter->options($options)
);
} catch (OssException $exception) {
throw new AliyunException($exception->getErrorMessage(), 0, $exception);
}
};
}
}