基于PHP实现阿里云开放存储服务
开放存储服务(OpenStorageService,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。用户可以通过简单的API(REST方式的接口),在任何时间、任何地点、任何互联网设备上进行数据上传和下载。
首先、登录阿里云首页http://www.aliyun.com/ 免费开通服务。
开通以后,进入"管理控制台"--进入"开发存储服务OSS",进入到控制台。
其次、下载SDK http://bbs.aliyun.com/job.php?action=download&aid=41064
解压后在samples文件夹内新建一个index.php文件
- <?php
- require_once dirname(__DIR__).'/aliyun.php';
- use Aliyun\OSS\OSSClient;
- // 创建一个连接阿里云开放存储的客户端
- function createClient($accessKeyId, $accessKeySecret) {
- return OSSClient::factory(array(
- 'AccessKeyId' => $accessKeyId, //AccessKeyId在“用户中心”--“我的服务”--“安全认证”
- 'AccessKeySecret' => $accessKeySecret,
- ));
- }
- //获取所有bucket
- //bucket是水桶的意思,可以理解为容器,里面装了各种各样的东西,也就是key=>value
- function listBuckets(OSSClient $client) {
- $buckets = $client->listBuckets();
- foreach ($buckets as $bucket) {
- echo 'Bucket: ' . $bucket->getName() . "\n";
- }
- }
- //新建bucket
- function createBucket(OSSClient $client, $bucket) {
- $client->createBucket(array( 'Bucket' => $bucket, ));
- }
- // Sample of get Bucket Acl
- function getBucketAcl(OSSClient $client, $bucket) {
- $acl = $client->getBucketAcl(array( 'Bucket' => $bucket, ));
- $grants = $acl->getGrants(); echo $grants[0];
- }
- //获取bucket的所有key
- function getBucketKey(OSSClient $client, $bucket){
- $objectListing = $client->listObjects(array( 'Bucket' => $bucket, ));
- foreach ($objectListing->getObjectSummarys() as $objectSummary) {
- $objectSummary->getKey();
- }
- }
- //向某个bucket上传内容,可以字符串或者文件
- function upload(OSSClient $client, $bucket,$key,$content,$type){
- isset($type)?$type:0;
- if($type == 0){
- $type = gettype($content);
- //如果上传内容为数组或者对象,需要进行序列化
- if($type == "array" || $type == "object") {
- $content = serialize($content);
- }
- $client->putObject(array( 'Bucket' => $bucket, 'Key' => $key, 'Content' => $content, ));
- }else{
- $client->putObject(
- array( 'Bucket' => $bucket,
- 'Key' => $key,
- 'Content' => fopen($content, 'r'),
- 'ContentLength' => filesize($content),
- ));
- }
- }
- //下载文件
- function download(OSSClient $client, $bucket, $key){
- $object = $client->getObject(
- array( 'Bucket' => $bucket,
- 'Key' => $key,
- ));
- echo (string)$object;
- }
- // 删除bucket
- function deleteBucket(OSSClient $client, $bucket) {
- $client->deleteBucket(
- array( 'Bucket' => $bucket, ));
- }
- $keyId = '5WTGMhX6mQX6Q***';
- $keySecret = 'VDISRNuHEY0THb9v1RYv08vj4lc***';
- $client = createClient($keyId, $keySecret);
- $bucket = 'xiaoqiangbucket';
- $key = rand(1,1000);
- $content = "this is xiaoqiang's content";
- //$content = array(1,2,3,4,5,6,7,8);
- listBuckets($client); //显示所有bucket
- createBucket($client, $bucket); //新建一个bucket
- getBucketAcl($client, $bucket);
- download($client, $bucket, $key); //下载key为$key的content
- upload($client, $bucket, $key, $content,0); //上传$key=>$content到bucket
- var_dump(getBucketKey($client, $bucket));//显示bucket内的所有key
- //deleteBucket($client, $bucket); //删除bucket
至此在客户端实现了控制台的所有操。
基于PHP实现阿里云开放存储服务的更多相关文章
- 开个坑, 写个阿里云开放储存服务(OSS)的C++版SDK以及客户端
这应该是继我研究手册QQ协议后的第2个稍微正式一点的网络程序, 不只是Scoket套接字编程, 还涉及到更多的HTTP协议知识! 阿里云开放储存服务OSS官方已经提供了不少SDK, 包括PHP/Pyt ...
- 阿里云对象存储服务,OSS使用经验总结,图片存储,分页查询
阿里云OSS-使用经验总结,存储,账号-权限,分页,缩略图,账号切换 最近项目中,需要使用云存储,最后选择了阿里云-对象存储服务OSS.总的来说,比较简单,但是仍然遇到了几个问题,需要总结下. 1.O ...
- 阿里云之OSS 开放存储服务开发笔记
在使用云服务以后,你不用考虑他是否能承受压力,而是费用.不要考虑是否被攻击,而是他的API实现.本人开发阿里云服务也走了些崎岖之路,写下以备忘之. 阿里云的开放存储服务可以提供文件的存储服务,开放了上 ...
- apache中的https设置基于阿里云免费ssl服务
环境是:debian7+apache2.2+阿里云免费ssl服务,站点以前的http已经在运行了, 1.开通阿里云免费SSL&DNS解析配置 购买位置:打开阿里云找到“产品”-“安全”-“CA ...
- 阿里云对象存储OSS与文件存储NAS的区别
一.简介 应用场景:选择一款存储产品,面向文档数据的存取,不会涉及到数据处理. 产品选型主要从OSS和NAS中选择一款,满足文档存储的需求. 二.NAS优缺点 NAS 是一种采用直接与网络介质相连的特 ...
- 阿里云文件存储CPFS正式商业化,提供云上高性能并行文件系统
2018年3月份,阿里云推出文件存储CPFS产品.在经过近一年的上线公测后,CPFS即将迎来商业化,将为更多的客户提供云上高性能的并行文件存储. 坚如磐石的高性能计算存储 文件存储CPFS针对计算密集 ...
- 为数据计算提供强力引擎,阿里云文件存储HDFS v1.0公测发布
在2019年3月的北京云栖峰会上,阿里云正式推出全球首个云原生HDFS存储服务—文件存储HDFS,为数据分析业务在云上提供可线性扩展的吞吐能力和免运维的快速弹性伸缩能力,降低用户TCO.阿里云文件存储 ...
- 阿里云对象存储 OSS 应用服务器搭建代码
背景说明 最近做一个APP客户端图片直传阿里云OSS的服务,需要在后台开一个阿里云的OSSToken获取的接口. 阿里云官方文档地址:快速搭建移动应用直传服务. 略过移动端说明,直接看服务端的. 不是 ...
- ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...
随机推荐
- Arc Engine下数据的加载处理
1.加载Shapefile数据 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLa ...
- springMVC基础配置
web.xml文件 <?xml version="1.0" encoding="UTF-8"?><web-app version= ...
- hdu 3951 - Coin Game(找规律)
这道题是有规律的博弈题目,,, 所以我们只需要找出规律来就ok了 牛人用sg函数暴力找规律,菜鸟手工模拟以求规律...[牢骚] if(m>=2) { if(n<=m) {first第一口就 ...
- java——多线程——内部类共享同一个外部类对象的成员变量
public class Shop { public static void main(String[] args) { Outer o=new Outer(); Thread t1=o.getSal ...
- 如何编写 Cloud9 JavaScript IDE 的功能扩展
上周末我们在JSConf.eu发布了 Cloud9 IDE ,同时发布了对应的GitHub项目.在4天时间里该项目得到340个人的关注和将近50个fork.Cloud9的口号是由"由Java ...
- MVC与DWZ整合中部分问题的解决
1.错误提示距离太远 2.正确与错误时返回JSON(即:如何不出现打开新页显示JSON字串) 3.打开新页后“数据加载中,请稍候”关不掉 4.如何正常的分页,同时如果有查询结果时分页也要有效 5.关闭 ...
- Github注册账户
这是注册页面: 注册完后应该会受到邮件,但我一直没有收到,换了邮箱也没有用 ± 账户可以登上去却没办法创建仓库.
- 用curl向指定地址POST一个JSON格式的数据
昨天的一个任务,用POST 方式向一个指定的URL推送数据.以前都用的数组来完成这个工作. 现在要求用json格式.感觉应该是一样的.开写. <?php $post_url = "ht ...
- mac安装redis
1.到官网下载最新的redis. http://redis.io/download 2.将下载下来的tar.gz 压缩包,(在/Users/***/Downloads)拷贝到usr/local目录下 ...
- BIT祝威博客汇总(Blog Index)
+BIT祝威+悄悄在此留下版了个权的信息说: 关于硬件(Hardware) <穿越计算机的迷雾>笔记 继电器是如何成为CPU的(1) 继电器是如何成为CPU的(2) 关于操作系统(Oper ...