micjohnson/weed-php

PHP客户端,用于Weed-FS,一个简单且高度可扩展的分布式文件系统

v0.1 2013-01-01 16:45 UTC

This package is not auto-updated.

Last update: 2024-09-22 07:02:32 UTC


README

PHP客户端,用于Weed-FS,一个简单且高度可扩展的分布式文件系统。

Weed-FS: http://code.google.com/p/weed-fs/

状态

准备测试/开发中

测试

dev-master: 构建状态

安装

通过composer安装

如果你已经使用composer,这是在项目中使用WeedPhp的最简单方式。

添加到你的composer.json文件中

"require": {
    "micjohnson/weed-php": "v0.1"
}

通过composer.phar安装

php composer.phar update micjohnson/weed-php

不使用composer安装

克隆仓库

git clone https://github.com/micjohnson/weed-php.git

创建自动加载器。在test/autoload.php中有一个示例

然后将自动加载器包含在你的项目中。

include_once('weed-php/test/autoload.php');

文档

在你的项目中创建一个WeedPhp对象,通过传递你的master weed-fs服务器位置。

<?php

// ...

$weedPhp = new WeedPhp\Client('localhost:9333');

WeedPhp提供了对大多数weed-fs REST调用的函数。

assign($count = 1, $replication = null)

assign返回一个json响应,包括文件id(你的文件将使用该id),以及存储文件的位置(使用store)。

在weed-fs中存储文件时,逻辑流程是assign然后store。Assign为要存储的文件保留$Count个位置(使用单个文件id)。

可以传递一个字符串作为replication,定义此文件将存储的复制类型。请参阅http://code.google.com/p/weed-fs/#Rack-Aware_and_Data_Center-Aware_Replication

注意,如果你有一个大于一的count,在文件id后追加_1, _2, _3等。第一个文件仍然只使用文件id。

store($volumeServerAddress, $fileId, $file)

此操作存储单个文件。

$volumeServerAddress应该是assign()返回的位置。

$fileId应该是assign()返回的文件id。

$file是要存储的原始文件数据。

storeMultiple($volumeServerAddress, $fileId, array $files)

此操作用于分配多个文件版本。它将自动遍历你的文件,并在存储文件时在文件id后追加_1, _2等。

$volumeServerAddress应该是assign()返回的位置。

$fileId应该是assign()返回的文件id。

$files是要存储的原始文件数据数组。

lookup($volumeId)

返回一个json响应,包含存储volume的位置

$volumeId是fileId逗号前的数字。

例如。
fid = 3,01637037d6
volumeId = 3

retrieve($volumeServerAddress, $fileId)

从volume服务器检索原始文件数据。

$volumeServerAddress应该是assign()返回的位置。

$fileId应该是assign()返回的文件id。

delete($volumeServerAddress, $fileId)

从volume服务器删除文件。请注意,没有deleteMultiple,如果你分配/存储了多个文件,你应该逐个删除它们。

$volumeServerAddress应该是assign()返回的位置。

$fileId应该是assign()返回的文件id。

status()

从你的weed-fs主服务器获取状态