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. ?> 
  • 相关阅读:
    20200226 Java IO流——廖雪峰
    20200225 Java 多线程(2)-廖雪峰
    20200225 Java 多线程(1)-廖雪峰
    20200224 尚硅谷ElasticSearch【归档】
    20200224 一 概述
    20200222 尚硅谷Dubbo【归档】
    20200222 四、dubbo原理
    Improved robustness of reinforcement learning policies upon conversion to spiking neuronal network platforms applied to Atari Breakout game
    Reinforcement learning in populations of spiking neurons
    Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling
  • 原文地址:https://www.cnblogs.com/handongyu/p/8431881.html
Copyright © 2011-2022 走看看