[PHP SDK for OpenStack/Rackspace APIs]使用对象存储服务

Swift是OpenStack的对象存储服务。在php-opencloud库中,通过connection对象创建的ObjectStore类(OpenStack或Rackspace)来存取。
 
例如:
 
$cloud = new \OpenCloud\OpenStack(array(
    'username'=>'{username}','password'=>'{password}'));
$swift = $cloud->ObjectStore('cloudFiles','DFW');
使用新创建的$swift,你可以使用不同的对象存储组件。
最高级别的对象存储组件实例是Container,Container是对象的集合名称,与文件系统中的目录和文件夹类似(实际上并不等同)。
 
所有的对象都保存在Container中。
 
在一个对象存储实例中列举所有Container
 
ContainerList对象是Container对象的集合。列举对象存储实例中的所有Container:
 
$containers = $swift->ContainerList();
while($container = $containers->Next())
    printf("%s\n", $container->name);
就像其他的对象集合,这也支持First(), Next()和Size()方法。
创建一个新Container
 
使用上面新创建的$swift对象的Container()方法创建一个新的(空的)的container。
 
$mycontainer = $swift->Container();
将该Container保存到对象存储实例中,使用Create()方法:
$mycontainer->Create('MyContainerName');
name不是必须在Create()方法中,如果name已经被设置的话。直接在方法中指定名称也是很方便的。
$mycontainer->name = 'MyContainerName';
$mycontainer->Create();
检索已存在的Container
如果你传递一个参数到ObjectStore对象的Container()方法中,可以检索一个已存在的Container:
 
$oldcontainer = $swift->Container('SomeOldContainer');
在这种情况下,关于SomeOldContainer的信息将被检索。这包含Container的metadata信息。
 
printf("Container %s has %d object(s) consuming %d bytes\n",
    $oldcontainer->name, $oldcontainer->count, $oldcontainer->bytes);
删除Container
 
Delete()方法删除Container
 
$oldcontainer->Delete();
请注意,Container被删除时必须是空的,也就是说必须没有对象与它相关联。
更新Container
 
在后台,容器创建和更新方式完全相同。你可以使用Create()方法来更新Container;然而,Update()方法也被作为Create()方法的别名而存在,因为这在语义学上可能不同(在你的程序中):
 
 
$oldcontainer->metadata->update_time = time();
$oldcontainer->Update();

时间: 2024-10-18 10:41:23

[PHP SDK for OpenStack/Rackspace APIs]使用对象存储服务的相关文章

COS对象存储服务的使用

---------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/53639792作者:朱培      ID:sdksdk0      -------------------------------------------------

Rackspace发布基于OpenStack块存储服务

Rackspace上周发布了一项新的存储服务--块存储(Cloud Block Storage).这项服务是对Rackspace已有的云存储服务的补充,特别是对于数据库和其它需要高速I/O的应用提供了支持.用户可以选择传统的磁盘存储,或者更高性能的SSD.价格方面,磁盘存储为15美分/GB/月,SSD价格为70美分/GB/月. 图:Rackspace的块存储提供SSD选择 用户可以从1GB到1TB自定义分区的大小,并可同时建立多个分区.需要注意的是,即使用户仅使用了1个1GB的分区,但也必须购买

Openstack Swift开源云存储技术解析

Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务,并于 2010 年贡献给 OpenStack http://www.aliyun.com/zixun/aggregation/13856.html">开源社区作为其最初的核心子项目之一,为其 Nova 子项目提供虚机镜像存储服务.Swift 构筑在比较便宜的标准硬件存储基础设施之上,无需采用 RAID(磁盘冗余阵列),通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,

OpenStack Swift跨地域存储集群的部署与优化

OpenStack Swift,大家会说它是OpenStack的对象存储服务,或者对象存储项目,但是实际上对象存储这个词它的含义,不同的人有不同的理解. 首先,让我们先看一个例子,就是淘宝在06.07年的时候,开始用他们自己研发的分布式存储系统,或者用现在时髦的话说叫SDS存储系统,来替代NAS设备.就以前淘宝的图片都是放在NAS里面的,但是从06年开始逐步的替换,当然很快,现在早已经不见了,没有一台NAS,负责一台SAN在淘宝的后端里面.中间有一个数据,当然更新的数据在2010年的时候,淘宝后

盘点Linux下的开源云平台&&云存储服务

15个您可能不知道的开源云平台 桉树云服务环境 Eucalyptus 开源协议及语言 GPL Java C/C++ 1 2 1 2 官方网站 http://www.eucalyptus.com/participate 介绍 Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一种开源的软件基础结构,用来通过计算集群或工作站群实现弹性的.实用的云计算.它最初

惠普推出测试版IaaS 进军云计算和云存储服务

HP今天在博客中宣布,他们推出了测试版的IaaS(http://www.aliyun.com/zixun/aggregation/13674.html">基础设施即服务),进军云服务市场. HP的云服务目前包括两部分,HP云计算和HP云对象存储,通过 HP 的数据中心来提供计算和存储资源.HP 使用开源云软件 OpenStack来作为云服务的基础. 在测试阶段,用户不需要为服务付费,正式上线后,他们采用pay-as-you-go模式,也就是变动收费方式,使用得多就付费就多,使用得少付费就少

windows-如何在 .NET 中使用 Windows Azure Blob 存储服务

问题描述 如何在 .NET 中使用 Windows Azure Blob 存储服务 如何在 .NET 中使用 Windows Azure Blob 存储服务 解决方案 您好, 首先,您需要在您的电脑上安装Azure 的SDK. 其次,您可以安装azure storage client library 在您的项目中.关于如何用C#使用Azure Blob,建议您参考这片教程:http://www.windowsazure.cn/zh-cn/documentation/articles/storag

azure-求解在 .NET环境 中使用 Windows Azure Blob 存储服务的方法

问题描述 求解在 .NET环境 中使用 Windows Azure Blob 存储服务的方法 求解在 .NET环境 中使用 Windows Azure Blob 存储服务的方法.谢谢 解决方案 Hi, Azure官方网站提供了关于Azure的一些文档,其中包括很多的服务,对于使用Azure具有一定的指导作用,文档地址:http://www.windowsazure.cn/documentation/,如果你想了解存储服务,请点击数据服务=>存储,希望这些教程能帮助你使用Azure存储服务. Be

.net- .NET 中可以使用 Windows Azure Blob 存储服务吗?

问题描述 .NET 中可以使用 Windows Azure Blob 存储服务吗? 如题 .NET 中可以使用 Windows Azure Blob 存储服务吗 解决方案 http://www.windowsazure.cn/zh-cn/develop/net/how-to-guides/blob-storage-v17/#configure-access 里面有例子也有如何调用和存储~ 解决方案二: 当然可以,而且.net是支持最好的平台.你有两个办法使用blob,一个是用restful ap