Yii2接入AWS S3管理附件(基础使用)

本文介绍了如何在Yii2框架下接入AWS S3服务来管理网站附件,详细阐述了从创建AWS账号、配置凭证到自定义s3Attachment组件的全过程,包括上传和删除附件的基本操作。通过自定义组件简化了开发流程,便于在实际项目中灵活应用。
摘要由CSDN通过智能技术生成

概述

在开发稍微复杂一点的网站时不能避免的一个问题是如何处理大量的附件,将附件托管在云上无疑是一个很好的选择,运营和维护成本都很低。可以让你潇洒的跳过附件维护这个坑。你不用再关心应该给服务器配置多大的硬盘来保存附件,不用再精打细算节约硬盘空间,也不用在担心附件集中下载影响服务器的带宽。如果你需要还可以方便的配置CDN加速,大幅提升用户体验。主流的附件托管服务就是aws s3和aliyun oss。这两个的价格基本差不多,基本都是0.1元/GB/月。相对于服务器的成本,这基本可以忽略了。本文只针对aws s3展开,并不涉及aliyun oss,有需要的同学可以自行查看oss文档,原理基本一样。

准备工作

首先你需要创建aws账号,并配置好安全凭证。请参考这里
安装AWS SDK,按照文档介绍的来就行,只是使用composer安装sdk时会比较慢,等等就好了。
准备工作都做好了,可以开始码代码了。

自定义s3Attachment组件

如果你还不知道yii2中应该如何自定义组件请参考这里
我们自定义s3组件的目的是将上传,删除等基本功能封装好,需要的地方直接调用就行。参考s3文档示例代码,简单修改下就能正常使用了。

<?php

namespace common\components;
 
use Yii;
use Yii\base\Exception;
use yii\base\Component;
use Aws\Sdk;
use Aws\Exception\AwsException;
use Aws\Exception\MultipartUploadException;
 
class s3Attachment extends Component
{
   
    /*
     * 常规上传附件
     *
     * @param string $bucket 存储桶名称.
     * @param string $key 附件公网访问地址.
     * @param string $source_file 待上传的附件.
     * @param string $content_type 附件类型.
     * @param string $ACL 访问控制.
     * 如果上传成功返回公网访问地址,如果上传失败返回false.
     */

    public function Upload($bucket, $key, $source_file, $content_type, $ACL)
    {
   

        if(empty($bucket) || empty($key) || empty($source_file) || empty($content_type) || empty($ACL)){
   
            return false;
        }

        try{
   

            $config = [
                &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值