zoukankan      html  css  js  c++  java
  • 基于php的AWS存储服务

    近几天用到了aws的s3存储服务,公司内部的完全兼容aws并对其进行了封装,之前也用过,现在把经验总结一下。

    既然要用,首先需要安装sdk,下边提供了几种安装方法

    方法一:使用composer安装

    1.先建立个安装目录,/opt/s3,本程序运行的实际工作目录是项目路径 /data/www/XXX,运行的其实是该目录下的vendor
    然后进到该目录 ,下载并安装composer , 因是在linux下,执行
    curl -sS https://getcomposer.org/installer | php
    如果是windows,参考官网安装
     
    2.键入Composer命令,安装开发工具包的最新稳定版本
    php -d memory_limit=-1 composer.phar require aws/aws-sdk-php
     
    3.在代码中包含进去
    <?php
        require '/opt/s3/vendor/autoload.php'
    ?>
    安装完成之后,会自动在/opt/s3目录下生成vendor目录
     
    方法二:也是使用composer安装
    1.下载并安装composer  ,在自己打算安装的目录,本文都以/opt/s3为例
    curl -sS https://getcomposer.org/installer | php
    

    该命令完成之后会生成composer.phar文件

    2.在/opt/s3下创建composer.json,添加如下代码

    {
       "require": {
         "aws/aws-sdk-php": "2.*"   //此处如果添加2.*版本如是填,如添加3.*版本,改成3.*即可
       }
    }
    

    3.安装

    php composer.phar install
    

    4.在代码中包含进去

    <?php
        require '/opt/s3/vendor/autoload.php'
    ?>
     
    方法三:使用打包的phar进行安装
    下载打包的phar 包含到代码中
    <?php require '/opt/s3/aws.phar'; ?>
    

    方法四:使用zip文件安装

    下载.zip文件,解压到/opt/s3目录

    <?php require '/opt/s3/aws-autoloader.php'; ?>
    

      

    安装完成之后,只是基础工作,然后在代码使用如下,本人用的yii框架

    <?php
    namespace appcommands;
    require '/opt/s3/vendor/autoload.php';
    use AwsS3S3Client;
    use AwsExceptionAwsException;
    
    class TestController extends Controller
    {
        public function actionBucket()
        {
            $options = [
                'region'            => 'bjcc',  //此处填区域 
                'version'           => '2006-03-01',
                'signature_version' => 'v4',
                'use_path_style_endpoint' => true,
                'endpoint' => 'http://zeppelin-gateway-host', //此处填文件存储在哪里的地址
                'credentials' => [
                    'key'    => '**********',
                    'secret' => '**************' //填上申请的key和secret
                ]
            ];
    
            $s3 = new S3Client($options);
            $result = $s3->putObject([
                'Bucket' => 'test',
                'Key'    => 'yang',
                'Body'   => 'hello'
            ]);
            print_r($result);
    
    }

    基于yii框架的使用:(本人的项目用的yii框架)

    进入到代码目录 比如 /data/www/xxx,这个目录自带vendor目录,都是第三方库,直接再这里执行方法一,完成之后会在里边生成aws的目录,然后调用直接使用即可。

    可以写个通用类:

    常用的api

    1.获取objecturl

    $url = $s3Client->getObjectUrl('my-bucket', 'my-key'); 

    2.创建bucket

    $result = $s3Client->createBucket(array('Bucket' => $testbk));

    3.put object

    $result = $s3Client->putObject(array(

        'Bucket' => $testbk,
        'Key' => $testkey,
        'Body' => 'hello'
    ));

    4.get Object

    $result = $s3Client->getObject(array(
        'Bucket' => $testbk,
        'Key' => $testkey
    ));

    5.delete object

    $result = $s3Client->deleteObject(array(
        'Bucket' => $testbk,
        'Key' => $testkey
    ));

    6.delete bucket

    $result = $s3Client->deleteBucket(array(
    'Bucket' => $testbk,
    ));

    7.上传

    $uploader = new MultipartUploader($s3, self::PATH.$n, [
        'bucket' => BT,
        'key' => $n
    ]);
    try {
        $result = $uploader->upload();
    } catch (MultipartUploadException $e) {
        echo $e->getMessage();
    }

     

    官网参考文档:https://docs.aws.amazon.com/zh_cn/sdk-for-php/v3/developer-guide/getting-started_installation.html

                                 http://easydoc.qihoo.net/doc?project=1d1b49835cbb989968925b2553243a0a&doc=700b7f4cde1360f7e24a9868ad517ca0&config=title_menu_toc

  • 相关阅读:
    Atitit.Java exe bat  作为windows系统服务程序运行
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结
  • 原文地址:https://www.cnblogs.com/kumufengchun/p/9815415.html
Copyright © 2011-2022 走看看