horidaisuke/cakephp-aws-s3bucket

此软件包已被废弃,不再维护。没有建议替代包。

CakePHP 4.x 的 AWS S3Bucket 插件

安装: 45

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 2

开放问题: 0

类型:cakephp-plugin

v0.1.0 2020-09-15 06:04 UTC

This package is auto-updated.

Last update: 2023-12-07 04:15:26 UTC


README

安装

您可以使用 composer 将此插件安装到您的 CakePHP 4.x 应用程序中。

安装 composer 包的推荐方法是

composer require horidaisuke/cakephp-aws-s3bucket

如何使用

1. 配置数据源

您可以在 app_xxx.php 中的数据源部分配置 S3 桶数据源,就像配置数据库一样。

例如

'Datasources' => [
    // ... after database configurations
    'name_of_s3_datasource' => [
        'className'  => 'S3Bucket\Datasource\Connection',
        'bucketName' => 'name_of_s3_bucket',
        'acl'        => 'public-read', // if object set to public access (default set to private)
        'client'     => [
            'region' => 'name_of_region',
        ],
    ],
],

2. 创建 S3Bucket 模型

您可以在命名空间 App\Model\S3Bucket 下为每个对象键前缀创建一个模型。

例如

<?php
declare(strict_types=1);

namespace App\Model\S3Bucket;

use S3Bucket\Datasource\S3Bucket;

class SampleOfS3BucketModel extends S3Bucket
{
    protected static $_connectionName = 'name_of_s3_datasource';
    protected static $_prefix = 'sample_of_object_key_prefix';
}

当提供了对象键前缀时,对象访问将在前缀范围内进行控制。

3. 从 S3BucketRegistry 获取模型

您可以从 S3BucketRegistry 获取创建的 S3 桶模型。

例如

$sampleOfS3BucketModel = S3BucketRegistry::init()->get('SampleOfS3BucketModel');

4. 上传、获取、删除等 S3Object

您可以通过 S3 桶模型进行一些操作(上传、获取、删除等)S3 对象。

例如

// putObject
$sampleOfS3BucketModel->putObject(`object_key`, file_get_contents(`filename_for_put`));

// getObject
$sampleOfS3BucketModel->getObject(`object_key`);

// getObjectBody
$sampleOfS3BucketModel->getObjectBody(`object_key`);

// deleteObject
$sampleOfS3BucketModel->deleteObject(`object_key`);

// deleteObjects
$sampleOfS3BucketModel->deleteObjects([`object_key1`, `object_key2`]);

// doesObjectExist
$sampleOfS3BucketModel->doesObjectExist(`object_key`);

// moveObject
$sampleOfS3BucketModel->moveObject(`object_key_from`, `object_key_to`);

// copyObject
$sampleOfS3BucketModel->copyObject(`object_key_from`, `object_key_to`);

// headObject
$sampleOfS3BucketModel->headObject(`object_key`);

许可证

本软件根据 MIT 许可证 许可。