基于php的AWS存储服务

摘要:
aws的s3存储服务最近几天一直在使用。该公司的内部存储服务与aws完全兼容,并已打包。它以前也被使用过。现在让我们总结一下我们的经验。由于您需要首先安装sdk,以下提供了几种安装方法:1.使用Composer进行安装。1.首先创建一个安装目录/opt/s3。此程序运行的实际工作目录是项目路径/data/www/XXX。实际上,它在这个目录下运行供应商,然后转到这个目录,下载并安装Composer。因为它在Linux下执行cur

近几天用到了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

免责声明:文章转载自《基于php的AWS存储服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Pycharm新建项目调用本地第三方插件库Android(java)学习笔记132:eclipse 导入项目是提示:某些项目因位于工作空间目录中而被隐藏。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

php eval函数用法总结

可以在php.ini禁止此函数,结果失败了 eval定义和用法 eval() 函数把字符串按照 PHP 代码来计算。 该字符串必须是合法的 PHP 代码,且必须以分号结尾。 如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。 语法 eval(phpcode) 参数 描述 php...

php windows环境 安装 Apache-apollo + phpMQTT 实现发送 MQTT

首先安装Apache-apollo 原文链接:http://blog.csdn.net/marrn/article/details/71141122?utm_source=itdadao&utm_medium=referral 1.首先从http://activemq.apache.org/apollo/download.html官网上下载wind...

关于设置微信分享标题,图标

公众号端: 1.你得有一个公众号(订阅号、服务号) 2.当前网站域名加进公众号的js安全域名中(这一步必须,注意域名格式,已经将文件放入指定位置,域名一般会绑定一个路径到哪个文件夹,所以得将文件放入对的位置,否则不能添加) 3.当前网站服务器的ip加进公众号的ip白名单中(这一步必须,在公众号当中添加,否则在获取access_token的时候会获取不到,这...

Bypass_disable_func

1、系统命令执行函数的黑名单绕过 system() shell_exec() === ``反引号 exec() passthru() popen() proc_open() pcntl_exec() dl() // 加载自定义 php 扩展,5.3以后被废弃 2、通过LD_PRELOAD偷梁换柱 先来了解下 LD_PRELOAD: LD_PRELOAD...

apache+php+mysql配置

---------------------------------------------------- ★软件工具:(下载时注意下载相应版本,不同版本安装细节可能会有差异!!) 1>httpd-2.4.18-win64-VC14.zip下载地址:http://www.apachelounge.com/download/ 2>php-5.6.16...

PHP面试题之优化

* PHP性能问题 * 1.PHP语法使用的不恰当 * 2.使用PHP语言做了它不擅长的事 * 3.使用PHP语言链接的服务不给力 * 4.PHP自身做不了的事情 * * PHP的性能问题的解决方向 * 1.PHP语言级的性能优化(代码优化) * 2.PHP周边问题的性能优化(linux,mysql,磁盘等) * 3.PHP语言性能的优...