SAE学习-使用SAE的Storage服务存储图片

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
简介:
+关注继续查看

看到园子里面有同学写了一篇《基于PHP实现阿里云开放存储服务》,围观地址:http://www.cnblogs.com/nosqlcoco/p/3474773.html。想 起自己也在Sina App Engine(简称SAE)注册了一个开发者账号,而已有一个个人在线简历,所以就尝试这把应用里面用到的图片都放到SAE的Storage服务里面存 储,然后在页面从storage里面读取图片地址,打开开发文档,就开始折腾起来。估计是PHP学习的不多,所以遇到的问题还是蛮多的。首先看一下SAE的storage服务内容:

image

阿里云的存储服务是现成的php sdk下载的,当前也有Java和C#的版本,而已只要里面填写了accessKeyId和accessKeySecret,可以不要自己的应用部署在阿 里云的服务器上,或者它的平台上。所以方式和又拍云相关的图片存储相类似。但是SAE首先没有提供相关的SDK,就是说本地没有Storage的操作方法 的源文件,因为这个原因,所以$mystorage=new SaeStorage写出的代码只能部署在SAE PaaS平台上。所以相对于阿里云来说,SAE的storage服务限制还是蛮多的。说到这里,就说一下另外一个MySQL服务,可以跨应用之间调用,但 是不能由第三方程序直接调用,也是这个原因。这里可能是各大公司对于IaaS和PaaS定位不同,新浪估计是这样想的,我提供的就是PaaS服务,所以我 当然希望你所有的应用和服务都在我的平台上开发,但是可以把各个服务分开计费呀!有的童鞋有云服务器,可能只想用一下你的Storage或者MySQL服 务,你这样直接reject掉了人家。

 

参考的API文档地址是:http://apidoc.sinaapp.com/sae/SaeStorage.html。我在CustomImage.php里面封装了一个方法,本是想写一个CustomImage类,发现写出来错误好多,对PHP面向对象还是不熟悉。代码如下:

<?php
//从SAE的汇总信息拿到这2个key
//属性
//方法
function loadImagesByGroupName($directoryname) {
    
    $accessKey = "your app's accessKey";
    $secretKey = "your app's secretKey";
    $sae_storage = new SaeStorage($accessKey, $secretKey);
    $domainName = "projectimages";
    $listfiles = $sae_storage->getListByPath($domainName, $directoryname);



    $files = $listfiles["files"];

    $imageUrls = array();
    foreach ($files as $imagefile) {
        
        $tempName=$directoryname ."/". $imagefile["Name"];
        $imageUrl = $sae_storage->getUrl($domainName, $tempName);
        array_push($imageUrls, $imageUrl);
    }
    
    return $imageUrls;
}
 //测试方法
//try {
//   
//    $result = loadImagesByGroupName("cokegame");
//    print_r($result);
//} catch (Exception $e) {
//    echo "Error:" . $e->getMessage();
//}
?>

 

 

说明一下代码逻辑,array getListByPath (string $domain, [string $path = NULL], [int $limit = 100], [int $offset = 0], [int $fold =true]) 获取指定Domain、指定目录下的文件列表,我在后台创建了多个目录,然后每个目录上传了相应的图片,获得的数组里面,我可以拿到文件的名词,然后我调 用string getUrl (string $domain, string $filename) 方法,获取到对应图片的url地址,这个URL地址就是从Storage存储里面生成出来的地址,不是从我应用程序部署的地方获取的。比如:http://liminjun-projectimages.stor.sinaapp.com/avatar/my.png

我在页面呈现的代码如下,就是根据目录,然后显示目录下所有的图片的。当然大家在最开始要控制好,一个目录最多放置多少张图片,要不然性能会有所下降。代码如下:

require_once 'CustomImage.php';
<ul class="itemImageList">
                    <?php
                    
                    $imagesUrls=loadImagesByGroupName("cokegame");
                    //使用for对数组进行循环
                    
                    for($i=0;$i<count($imagesUrls);$i++)
                    {
                        ?>
                        <li>
                            <a href="javascript:void(0);" rel=""><img src=<?php echo $imagesUrls[$i] ?> alt="Coke Gaming Zone Preview Image"></a>
                        </li>
                    <?php   
                        }
                    ?>
                <div class="clearfix"></div>
            </ul>


在一般情况,有PHP使用经验,然后查看相关的API文档还是可以完成一些简单应用需求。在这里大家也了解到阿里云的开放存储服务和SAE的Storage服务的差别,大家在个人项目或者企业项目时,可以综合考虑,选择最适合自己的解决方案。

相关实践学习
基于小程序Serverless开发个人相册小程序
本场景基于小程序云Serverless+小程序开发者工具(IDE),快速搭建个人相册小程序
SAE的功能与使用入门
欢迎来到《SAE的功能与使用入门》,本课程是“云原生Serverless Clouder认证“系列中的第三阶段。课程将向您介绍阿里云Serverless应用引擎(SAE)服务相关的概念、特性与使用方式。通过课程将带您逐步深入探索Serverless世界,借助SAE服务,即使没有丰富的云计算和IT经验,也能够让开发人员在实际业务场景中便捷的掌握如何构建和部署应用程序,快速拥抱Serverless架构,将精力聚焦在应用代码和业务逻辑的实现上。 学习完本课程后,您将能够: 掌握Serverless应用引擎(SAE)的基本概念与核心优势 了解Serverless应用引擎(SAE)的核心功能 掌握使用Serverless应用引擎(SAE)的开发和部署流程 了解Serverless应用引擎(SAE)的适用场景和最佳实践 &nbsp;
目录
相关文章
|
25天前
|
Serverless 数据安全/隐私保护 开发者
《开发者评测》之Serverless应用引擎SAE获奖名单
Serverless应用引擎SAE评测最优奖、潜力奖、争优奖获奖名单正式公布!
216 0
|
2月前
|
Kubernetes 监控 Serverless
Serverless 应用引擎中SAE与ECI的区别是什么?
Serverless 应用引擎中SAE与ECI的区别是什么?
172 3
|
2月前
|
运维 Serverless 应用服务中间件
Serverless应用引擎SAE,产品评测
Serverless应用引擎SAE是一款极简易用、自适应弹性的容器化应用平台。它提供全托管的计算服务,用户不必再关心复杂的基础设施,只需要上传代码或者容器镜像,SAE会自动运行,并提供网络、负载均衡、监控等配套能力,适用于网站、小程序、APP等Web应用以及微服务应用
304 0
|
2月前
|
弹性计算 Kubernetes Serverless
SAE和容器服务 Serverless 版 如何选择
SAE和容器服务 Serverless 版 如何选择
58 0
|
2月前
|
运维 监控 Serverless
Serverless应用引擎SAE评测|一分钟部署在线游戏
简要介绍Serverless应用引擎SAE以及一分钟部署在线游戏的操作过程,体验等
|
3月前
|
消息中间件 供应链 Serverless
5分钟打造应对流量洪峰的商城交易系统——基于云消息队列 RocketMQ和Serverless 应用引擎 SAE
通过SAE极速部署一个微服务电商商城,同时结合RocketMQ异步解耦、削峰填谷的能力,带大家体验面对流量洪峰仍旧稳定可靠的商城交易系统!
1473 1
|
3月前
|
存储 Devops Serverless
我对SAE这款服务有了一定的了解
我对SAE这款服务有了一定的了解
35 1
|
测试技术 BI 网络安全
如何压测SAE产品托管的SpringCloud服务
SAE、SpringCloud服务、性能压测
533 0
如何压测SAE产品托管的SpringCloud服务
|
Dubbo 测试技术 应用服务中间件
如何压测SAE产品托管的DUBBO服务
SAE、DUBBO服务、性能压测
256 0
如何压测SAE产品托管的DUBBO服务
相关产品
云迁移中心
推荐文章
更多