miguelangelmp10 / multistorage
用于处理多个存储后端的应用包
dev-main
2024-08-01 16:08 UTC
Requires
- php: >=8.2
- aws/aws-sdk-php: ^3.0
- google/cloud-storage: ^1.24
- microsoft/azure-storage-blob: ^1.5
- phpseclib/phpseclib: ^3.0
Requires (Dev)
- mockery/mockery: ^1.4
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2024-10-01 16:33:36 UTC
README
Multistorage 是一个 PHP 库,允许管理多个文件存储系统。支持本地存储、SFTP、Amazon S3、Google Cloud Storage、Azure Blob Storage 和 DigitalOcean Spaces。
特性
- 支持多个后端存储。
- 统一接口访问不同存储系统。
- 易于扩展,添加新的存储后端。
要求
- PHP >= 8.2
- Composer
- 每种存储类型所需的 PHP 扩展(例如,
ext-curl
用于 AWS S3)。
安装
您可以使用 Composer 安装此库。在终端中执行以下命令:
composer require miguelangelmp10/multistorage
配置
要配置和使用 Multistorage 库,首先需要创建一个您想要使用的存储实例,然后调用相应的方法。
使用示例
<?php require 'vendor/autoload.php'; use MiguelAngelMP10\Multistorage\Storages\LocalStorage; use MiguelAngelMP10\Multistorage\Storages\SftpStorage; use MiguelAngelMP10\Multistorage\Storages\S3Storage; use MiguelAngelMP10\Multistorage\Storages\GcpStorage; use MiguelAngelMP10\Multistorage\Storages\AzureStorage; use MiguelAngelMP10\Multistorage\Storages\IbmCloudStorage; use MiguelAngelMP10\Multistorage\Storages\DigitalOceanSpacesStorage; // Uso de almacenamiento local $local = new LocalStorage('/path/to/local/storage'); $local->writeFile('test.txt', 'Hello, Local!'); // Uso de almacenamiento SFTP $sftp = new SftpStorage('sftp.example.com', 'username', 'password', '/path/to/sftp/storage'); $sftp->writeFile('test.txt', 'Hello, SFTP!'); // Uso de almacenamiento S3 $s3 = new S3Storage('bucket-name', 'region', 'access-key', 'secret-key'); $s3->writeFile('test.txt', 'Hello, S3!'); // Uso de almacenamiento GCP $gcp = new GcpStorage('bucket-name', 'path/to/credentials.json'); $gcp->writeFile('test.txt', 'Hello, GCP!'); // Uso de almacenamiento Azure $azure = new AzureStorage('account-name', 'account-key', 'container-name'); $azure->writeFile('test.txt', 'Hello, Azure!'); // Uso de almacenamiento DigitalOcean Spaces $doSpaces = new DigitalOceanSpacesStorage('space-name', 'region', 'access-key', 'secret-key'); $doSpaces->writeFile('test.txt', 'Hello, DigitalOcean Spaces!');