PHP code example of szwtdl / storage
1. Go to this page and download the library: Download szwtdl/storage library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
szwtdl / storage example snippets
use Szwtdl\Service\IService;
use Szwtdl\Storage;
$config = [
'access_key' => 'your-access-key',
'secret_key' => 'your-secret-key',
'bucket' => 'demo-bucket',
'endpoint' => 'oss-cn-qingdao',
'options' => [
'region' => 'oss-cn-qingdao',
'domain' => 'https://cdn.example.com',
],
];
/** @var IService $storage */
$storage = Storage::driver('aliyun', $config);
// $storage = Storage::driver('tencent', $config);
// $storage = Storage::driver('qiniu', $config);
interface IService
{
public function getTemporaryCredentials(array $options = []): array;
public function listBuckets(): array;
public function createBucket(string $name, array $options = []): array;
public function deleteBucket(string $name): array;
public function listObj(array $options = []): array;
public function upload(string $filePath, string $object): array;
public function delete(string $object): array;
public function download(string $object, string $filePath, array $options = []): array;
}
[
[
'name' => 'demo-bucket',
'region' => 'oss-cn-qingdao',
'class' => 'Standard',
'domain' => 'https://cdn.example.com',
'created_at' => '2026-04-12 10:00:00',
],
]
[
[
'path' => 'demo/logo.png',
'name' => 'logo.png',
'size' => 12345,
'type' => 'file',
'etag' => 'etag-or-hash',
'hash' => 'qiniu-hash-only',
'url' => 'https://cdn.example.com/demo/logo.png',
'last_modified' => '2026-04-12 10:00:00',
],
]
[
'name' => 'demo-bucket',
'status' => 'created', // 或 deleted
'success' => true,
'raw' => $sdkResponse,
]
[
'path' => 'demo/logo.png',
'name' => 'logo.png',
'size' => 12345,
'etag' => 'etag-or-hash',
'hash' => 'qiniu-hash-only',
'url' => 'https://cdn.example.com/demo/logo.png',
'success' => true,
'raw' => $sdkResponse,
]
[
'path' => 'demo/logo.png',
'success' => true,
'raw' => $sdkResponse,
]
[
'path' => 'demo/logo.png',
'save_as' => '/tmp/logo.png',
'size' => 12345,
'url' => 'https://cdn.example.com/demo/logo.png',
'success' => true,
'raw' => $sdkResponse,
]
[
'type' => 'sts', // 七牛为 upload_token
'credentials' => [
'access_key_id' => 'tmp-ak',
'access_key_secret' => 'tmp-sk',
'session_token' => 'token',
'upload_token' => 'qiniu-upload-token',
],
'expiration' => '2026-04-12T12:00:00Z',
'expired_at' => 1760000000,
'bucket' => 'demo-bucket',
'region' => 'oss-cn-qingdao',
'domain' => 'https://cdn.example.com',
'success' => true,
'raw' => $sdkResponse,
]
use Szwtdl\Service\IService;
use Szwtdl\Storage;
/** @var IService $storage */
$storage = Storage::driver('aliyun', $config);
$buckets = $storage->listBuckets();
print_r($buckets);
$result = $storage->getTemporaryCredentials([
'role_arn' => 'acs:ram::1234567890123456:role/oss-sts-role',
'role_session_name' => 'web-upload',
'duration_seconds' => 3600,
]);
print_r($result);
$storage = Storage::driver('tencent', $config);
$result = $storage->getTemporaryCredentials([
'duration_seconds' => 3600,
'allow_prefix' => ['/*'],
'allow_actions' => ['name/cos:*'],
]);
print_r($result);
$storage = Storage::driver('qiniu', $config);
$result = $storage->getTemporaryCredentials([
'key' => 'demo/logo.png',
'expires' => 3600,
]);
print_r($result);
$result = $storage->getTemporaryCredentials([
'credentials' => [
'access_key_id' => 'tmp-ak',
'access_key_secret' => 'tmp-sk',
'session_token' => 'tmp-token',
],
'expiration' => '2026-04-12T12:00:00Z',
'expired_at' => 1760000000,
]);
$result = $storage->createBucket('demo-new-bucket', [
'region' => 'oss-cn-qingdao',
]);
print_r($result);
$result = $storage->deleteBucket('demo-new-bucket');
print_r($result);
$list = $storage->listObj();
print_r($list);
$list = $storage->listObj([
'prefix' => 'demo/',
]);
print_r($list);
$list = $storage->listObj([
'prefix' => 'demo/',
'delimiter' => '/',
]);
print_r($list);
$list = $storage->listObj();
echo $list[0]['url'] ?? null;
$result = $storage->upload('/absolute/path/logo.png', 'demo/logo.png');
echo $result['url'] ?? null;
print_r($result);
$result = $storage->delete('demo/logo.png');
var_dump($result['success']);
$result = $storage->download('demo/logo.png', '/tmp/logo.png');
echo $result['save_as'];
print_r($result);
php artisan vendor:publish --provider="Szwtdl\Storage\ServiceProvider"
/** @var \Szwtdl\Service\IService $storage */
$storage = app('storage');
$storage->upload('/absolute/path/logo.png', 'demo/logo.png');
$storage->listObj();
$storage->download('demo/logo.png', '/tmp/logo.png');
$storage->delete('demo/logo.png');