【PHP SDK for OpenStack/Rackspace APIs】使用Object

使用对象

Objects是Object Storage服务的基本组件。Object可以一个图片、视频、文件或者任何一个需要占用存储空间的东西。

不幸的是,object这个词在计算机编程中有特定的含义,这可能与其他有object含义的单词混淆。因此php-opencloud所说的object是指存储在object storage中的DataObject。这仅仅是为了避免混淆——例如,PHP的内建函数is_object()就是检查它是否是PHP对象,如果它是存储在ObjectStorage中。

因此,对象存储服务的完整集成结构是:

 

* `OpenStack` (or `Rackspace`) 是ObjectStorage的父类

* `ObjectStore` 服务事例,是Container的父类

* `Container`, 是DataObject的父类

* `DataObject`, 包含实际对象数据

 

DataObject类和它包含的方法

 

调用Container对象的工厂方法创建一个空的DataObject

 

         $cloud= new OpenStack(...);

         $ostore= $cloud->ObjectStore(...);

         $container= $ostore->Container('MyContainer');

         $obj= $container->DataObject();

 

 

属性

 

DataObject中定义的标准属性:

 

* `name` - 对象名

* `hash` - 对象的MD5校验码

* `bytes` - 对象长度(字节)

* `last_modified` - 对象上次更改的日期

* `content_type` - 内容类型

* `content_length` - 内容长度(字节)

 

方法:

 

如下定义的是可用的方法:

 

* `Url()` - 对象在存储系统中的URL

* `Create()` - 在对象存储系统中创建一个对象

* `Update()` -更新已存在的对象

* `Delete()` - 删除对象

* `SetData()` - 直接设置对象的内容(很少使用)

* `SaveToString()` -以string类型返回对象(很少使用)

* `SaveToFilename()` - 将对象保存到本地文件中

 

大对象

 

对象存储服务中存储比服务器内存大的多的对象是很平常的事情。例如,服务器只有几个G的内存,而一个要存储的视频文件就可能有100G大。因此,对象的数据通常从本地文件系统上读取或者写入。当然,并非总是如此,因此也提供了一些其他的方法,但是他们在上面的方法中被标记了(很少使用)。

 

翻译自:https://github.com/rackspace/php-opencloud/blob/master/docs/userguide/objects.md

 

你可能感兴趣的:(【PHP SDK for OpenStack/Rackspace APIs】使用Object)