阿里云Oss--phpSDK

        本文简单介绍下,php-oss的使用方法,如果对阿里云OSS对象存储还不太了解,请先查看 如何使用阿里云Oss云存储?

        传送门地址: https://cksite.cn/article/121.html 


        1、环境准备

        PHP 5.3+:

            --您可以通过php -v命令查看当前的PHP版本。

        cURL 扩展:

            --您可以通过php -m命令查看cURL扩展是否已经安装好。

        说明:

            --Ubuntu系统中,您可以使用apt-get包管理器安装PHP的cURL扩展 sudo apt-get install php-curl。

            --CentOS系统中,您可以使用yum包管理器安装PHP的cURL扩展 sudo yum install php-curl。

            --Windows系统中,PHP和PHP cURL扩展的安装方法请参见 Windows下编译使用阿里云 OSS PHP SDK


        2、SDK下载

            --GitHub地址:GitHub

            --版本迭代:Releases

            --SDK API文档:API Doc

            建议您使用最新版本的SDK。2.0.0版本以下的SDK文档可从此处下载


        3、安装

        composer方式

        composer方式安装SDK的步骤如下:

        1)、在项目的根目录运行composer require aliyuncs/oss-sdk-php,或者在您的composer.json中声明对阿里云 OSS SDK for PHP的依赖:

 "require": {
     "aliyuncs/oss-sdk-php": "~2.0"
 }

        冷暖自知一抹茶ck

        2)、通过composer install安装依赖。安装完成后,目录结构如下:

     .
     ├── app.php
     ├── composer.json
     ├── composer.lock
     └── vendor

        其中app.php是用户的应用程序,vendor/目录下包含了所依赖的库。您需要在app.php中引入依赖:

require_once __DIR__ . '/vendor/autoload.php';

        说明:

        如果您的项目中已经引用过autoload.php,则加入了SDK的依赖之后,不需要再次引入。

        如果使用composer出现网络错误,可以使用composer中国区的镜像源。方法是在命令行执行

composer config -g repositories.packagist composer http://packagist.phpcomposer.com

        phar方式

        phar方式安装SDK的步骤如下:

        1)、在发布页面中选择相应的版本并下载打包好的phar文件。

        2)、在代码中引入phar文件

require_once '/path/to/oss-sdk-php.phar';

        源码方式

        源码方式安装SDK的步骤如下:

        1)、在发布页面中选择相应版本并下载打包好的zip文件。

        2)、解压后的根目录中包含一个autoload.php文件,在代码中引入此文件:

require_once '/path/to/oss-sdk/autoload.php';


        4、示例程序

        您可以通过以下步骤运行示例程序:

        1)、解压下载的SDK包。

        2)、修改samples目录中的Config.php文件:

                OSS_ACCESS_ID是您从OSS获得的AccessKeyId。

                OSS_ACCESS_KEY是您从OSS获得的AccessKeySecret。

                OSS_ENDPOINT是您选定的OSS数据中心访问域名,如 http://oss-cn-hangzhou.aliyuncs.com。

                OSS_TEST_BUCKET是您运行示例程序所使用的Bucket。示例程序会在这个Bucket中创建一些文件。

        3)、在samples目录中执行 php RunAll.php, 也可以单独运行某个示例文件。

        示例程序包含以下内容:

示例文件示例内容
Object.php展示了Object操作的用法,包括上传下载复制删除列举元信息
MultipartUpload.php展示了大文件上传分片上传的用法
Signature.php展示了URL签名授权访问的用法
Callback.php展示了上传回调的用法
Image.php展示了图片处理的用法
LiveChannel.php展示了LiveChannel的用法
Bucket.php展示了Bucket管理操作的用法,包括创建删除列举权限
BucketLifecycle.php展示了如何设置/读取/清除Bucket的生命周期
BucketLogging.php展示了如何设置/读取/清除Bucket的日志
BucketReferer.php展示了如何设置/读取/清除Bucket的防盗链
BucketWebsite.php展示了如何设置/读取/清除Bucket的静态网站托管
BucketCors.php展示了如何设置/读取/清除Bucket的跨域资源访问


        在这里不适用框架,抛砖引玉 单独跑、测试一下:

        1、wamp环境下 使用 composer 安装oss-php,即可看到aliyunOss下目录结构:

     .
     ├── composer.json
     ├── composer.lock
     └── vendor

        

        2、新建 Common.php ,拷贝 vendor\aliyuncs\oss-sdk-php\samplesCommon.php 到根目录,

if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

改为:

if (is_file(__DIR__ . '/vendor/autoload.php')) {
    require_once __DIR__ . '/vendor/autoload.php';
}

        

        3、新建配置文件 Config.php,拷贝 vendor\aliyuncs\oss-sdk-php\samples\Config.php 到根目录,相应更改下以下阿里云拿到的的值

const OSS_ACCESS_ID   = 'XXXXXXXXX';
const OSS_ACCESS_KEY   = 'XXXXXXXXX';
const OSS_ENDPOINT     = 'XXXXXXXXX';
const OSS_TEST_BUCKET   = 'XXXXXXXXX';// 之前设置的Bucket name 
    
如果想在该Bucket里面同一个文件加下,可以增加如下设置
const OSS_DIR       = '';//

    

        4、新建一个 index.php文件。

<?php
require_once __DIR__ . '/Common.php';

use OSS\OssClient;
use OSS\Core\OssException;

$bucket    = Common::getBucketName();
$ossClient = Common::getOssClient();

var_dump($bucket);
var_dump($ossClient);


//1、上传本文件到OSS
//$result = $ossClient->uploadFile($bucket, "c.file", __FILE__);

//2、上传图片到OSS
/*
$result = $ossClient->uploadFile($bucket, "example.jpg", 'example.jpg');
Common::println("example is created");
Common::println($result['x-oss-request-id']);
Common::println($result['etag']);
Common::println($result['content-md5']);
Common::println($result['body']);
*/

//3、判断文件是否存在
$doesExist = $ossClient->doesObjectExist($bucket, "example.jpg");
Common::println("file c.file.copy exist? " . ($doesExist ? "yes" : "no"));


//4、返回上传文件的url 访问链接地址
$oss_dir = Config::OSS_DIR;
$dir = empty($oss_dir) ? $oss_dir : $oss_dir ."/";//Oss上传目录
$paths ="http://". Config::OSS_TEST_BUCKET. "." .Config::OSS_ENDPOINT ."/". $dir;//如果需要全路径,用此变量
var_dump($paths .'example.jpg' );

        注意:后期不用的话,可删去 Common 类的  输出打印。

        更多功能可查看  vendor\aliyuncs\oss-sdk-php\samples 文件夹下的例子。


        使用阿里云提供的  常用工具,我们就可以动态的查看 oss操作处理。这里我使用的 是ossbrowserOSS官方提供的图形化的管理工具。

效果如果:

冷暖自知一抹茶ck


OSS工具及文档中心:   https://promotion.aliyun.com/ntms/act/ossdoclist.html?&msctype=email&mscareaid=cn&mscsiteid=cn&mscmsgid=5600118062500337145& 

OSS详情页     :   https://www.aliyun.com/product/oss?&msctype=email&mscareaid=cn&mscsiteid=cn&mscmsgid=5600118062500337145& 

更多工具查看:  https://help.aliyun.com/document_detail/44075.html?spm=a2c4g.11186623.6.1061.BTS9PB  

冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论