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

简介:

看到园子里面有同学写了一篇《基于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;
目录
相关文章
|
1月前
|
运维 Serverless 调度
Serverless 应用引擎常见问题之资源使用完影响服务使用如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
22 0
|
7月前
|
存储 Devops Serverless
我对SAE这款服务有了一定的了解
我对SAE这款服务有了一定的了解
47 1
|
1月前
|
关系型数据库 MySQL Serverless
Serverless 应用引擎常见问题之新发布的服务 arms 没了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
26 3
|
3月前
|
监控 Serverless 持续交付
Serverless 应用引擎问题之服务中断如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
114 1
|
11月前
|
弹性计算 运维 Kubernetes
《2023云原生实战案例集》——05 金融服务——视野数科 运维提效60%,SAE+Jenkins打造云原生DevOps
《2023云原生实战案例集》——05 金融服务——视野数科 运维提效60%,SAE+Jenkins打造云原生DevOps
|
测试技术 BI 网络安全
如何压测SAE产品托管的SpringCloud服务
SAE、SpringCloud服务、性能压测
551 0
如何压测SAE产品托管的SpringCloud服务
|
Dubbo 测试技术 应用服务中间件
如何压测SAE产品托管的DUBBO服务
SAE、DUBBO服务、性能压测
265 0
如何压测SAE产品托管的DUBBO服务
|
API PHP 数据库
PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——进一步学习的走向和有用的资源
PHP+新浪微博开放平台+新浪云平台(SAE) ——新浪微博应用开发的一个解决方案 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础二、建立微博应用的过程三、PHP SDK中Demo程序简析四、进一步学习的走向和有用的资源五、必须交待的几个问题【PDF全文下载】 进一步学习的走向和有用的资源   在进一步的学习中,你需要:   (1)好好学习PHP:照
1374 0
|
1月前
|
缓存 Java Serverless
Serverless 应用引擎常见问题之安装完serverless dev报错如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
30 4

热门文章

最新文章