zoukankan      html  css  js  c++  java
  • aws

        对象存储(Object-Oriented Storage,OOS)是AWS发明的云存储服务, AWS称之为S3(Simple Storage Service). 对象存储为客户提供的一种海量、弹性、高可用、高性价比的存储服务,按需使用,像一个超级硬盘一样。

         中国电信天翼云提供对象存储(OOS)服务,其API接口兼容AWS S3接口。与众不同的是,中国电信提供一种专线,称为云专线,将企业的局域网与云直连。企业可通过专线访问对象存储,不需通过互联网访问,既安全又高速。这样访问对象存储就跟访问本地硬盘一样快,最高可达到1000M bps, 非常适合于企业大数据量存储、备份。

         使用对象存储有两种方式: 

    第一种是通过门户网页,手工操作上下载文件。天翼云对象存储的门户网址是  http://oos.ctyun.cn/。到电信公司开个户,即可使用。

    第二种是通过调用API, 程序方式上下载文件。天翼云兼容AWS S3接口,  可以采用AWS SDK实现API调用。 到电信公司开个户,在门户网页登录后,可获得Access Key 和 Secret, 用于开发。

    我经常使用的是PHP,  本文小结一个如何使用AWS PHP SDK存取天翼云的对象存储(OSS)。

    一、下载AWS PHP SDK

      AWS PHP SDK版本选择:   经测试,目前天翼云只能使用 AWS PHP SDK V2.x 版本。不能使用V3.x版本。

     SDK文档在: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/

     我下载phar文件(只有一个文件方便用), 下载地址: 

    http://docs.aws.amazon.com/aws-sdk-php/v2/download/aws.phar

    二、AWS PHP SDK的使用

    简单说, 就是创建一个 S3Client对象, 然后调用 S3Client对象的几个方法,比如: getObject() 下载对象文件  putObject() 上载对象文件。

    关于S3Client对象的开发说明文档在:http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html

    当访问天翼云,创建S3Client对象时,要声明 endpoint 为天翼云的服务器地址即可。

    例程:

    1. <?php  
    2.   
    3. require 'aws.phar'; ////包含AWS SDK文件 aws.phar(只能使用V2版的SDK)  
    4. use AwsS3S3Client;   //声明使用Aws命名空间中的S3Client类  
    5.   
    6. //天翼云的API服务器  
    7. $endpoint = 'http://oos.ctyunapi.cn';   
    8.   
    9. //Access Key 在天翼云门户网站-帐户管理-API密钥管理中获取  
    10. $accessKey = "ACCESS KEY ID";   
    11.   
    12. //Access Secret 在天翼云门户网站-帐户管理-API密钥管理中获取  
    13. $accessSecret = "SECRECT ID";  
    14.   
    15. //创建S3 client 对象  
    16. $client = S3Client::factory([  
    17.     'endpoint' => $endpoint,  //声明使用指定的endpoint  
    18.     'key'      => $accessKey,  
    19.     'secret'   => $accessSecret  
    20. ]);  
    21.   
    22. header('content-type:text/plain');  
    23.   
    24. //列出所有buckets  
    25. $result = $client->listBuckets(array());  
    26. foreach ($result['Buckets'] as $bucket) {  
    27.     // Each Bucket value will contain a Name and CreationDate  
    28.     echo "{$bucket['Name']} - {$bucket['CreationDate']} ";  
    29. }  
    30.   
    31. echo " ";  
    32.   
    33. //列出指定bucket下所有的object  
    34. $bucket = 'cwz-public';  
    35. $result = $client->listObjects(array(  
    36.         'Bucket' => $bucket  
    37. ));  
    38. foreach ($result['Contents'] as $object) {  
    39.     // Each Bucket value will contain a Name and CreationDate  
    40.     echo "{$object['Key']} - {$object['Size']} ";  
    41. }  
    42.   
    43. echo " ";  
    44.   
    45. //上传一个object  
    46. $bucket = 'my-public';  
    47. $key = 'new.txt';  
    48. $body = file_get_contents('new.txt');  
    49. $client->upload($bucket, $key, $body);  
    50.   
    51. //下载一个object  
    52. $result = $client->getObject(array(  
    53.         'Bucket' => $bucket,  
    54.         'Key'    => 'new.txt'  
    55. ));  
    56. echo $result['Body']; //显示文件对象的内容  
    57.   
    58. ?> 
  • 相关阅读:
    1.vue-1
    7.Docker -- 虚拟服务器
    11.Django -- 中间件
    10.Django -- csrf -- 文件上传
    9.djang -- cookie和session
    8.Django --Ajax
    YOLO v1原理详解
    带你一文读懂Faster RCNN论文
    Week13
    Week12
  • 原文地址:https://www.cnblogs.com/handongyu/p/8431881.html
Copyright © 2011-2022 走看看