热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于PHP实现阿里云开放存储服务_PHP教程-php教程

基于PHP实现阿里云开放存储服务。开放存储服务(OpenStorageService,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。用户可以通过简单的API(REST方
开放存储服务(OpenStorageService,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。用户可以通过简单的API(REST方式的接口),在任何时间、任何地点、任何互联网设备上进行数据上传和下载。

首先、登录阿里云首页http://www.aliyun.com/ 免费开通服务。

开通以后,进入"管理控制台"--进入"开发存储服务OSS",进入到控制台。

其次、下载SDK http://bbs.aliyun.com/job.php?action=download&aid=41064

解压后在samples文件夹内新建一个index.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

至此在客户端实现了控制台的所有操。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/621621.htmlTechArticle开放存储服务(OpenStorageService,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。用户可以通过简单的API(REST方...


推荐阅读
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 使用Echarts for Weixin 小程序实现中国地图及区域点击事件
    本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ... [详细]
  • 本文将探讨如何在 Struts2 中使用 ActionContext 和 ServletActionContext 来获取请求参数和会话信息,同时解释它们的内部机制和最佳实践。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 本文探讨了当通过Nginx访问网站时出现504 Gateway Timeout错误的解决方案,特别是当请求处理时间超过30秒时的情况。文章提供了调整PHP-FPM配置的具体步骤,以延长请求超时时间。 ... [详细]
  • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 将字符串中的嵌套列表转换回嵌套列表 ... [详细]
author-avatar
123454ewefewf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有