FastDFS接口API文檔說明


FastDFS接口API文檔說明
時間:2012-03-17 來源:R9IT 作者:R9傳奇
一.命令行的上傳: 上傳命令1. /usr/local/bin/fdfs_upload_file config_file local_filename 例如:系統根目錄下有個文件需要上傳到dfs服務器上: / cairo-1.2.0.tar.gz 執行上傳命令如下: /usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /cairo

 

一.命令行的上傳:

上傳命令1.

/usr/local/bin/fdfs_upload_file  <config_file> <local_filename>

例如:系統根目錄下有個文件需要上傳到dfs服務器上:

/ cairo-1.2.0.tar.gz

執行上傳命令如下:

/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /cairo-1.2.0.tar.gz

返回值如下:

group3/M00/00/00/wKgAUE5yh7DZXQcEACiWWseqpak.tar.gz

此信息返回的是文件存儲的路徑及文件名信息。

 

上傳命令2(測試上傳,請務必不要在生產線上使用,統一使用第一種上傳):

/usr/local/bin/fdfs_test  <config_file>  upload <local_filename>

例如:上傳同上一樣的文件:

/usr/local/bin/fdfs_test  /etc/fdfs/client.conf  upload /cairo-1.2.0.tar.gz

返回值如下:

INFO - base_path=/home/yuqing/fastdfs, connect_timeout=30,

 network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secr

et_key length=0

tracker_query_storage_store_list_without_group:

        server 1. group_name=group3, ip_addr=192.168.0.80, port=23000

 

group_name=group3, ip_addr=192.168.0.80, port=23000

storage_upload_by_filename

group_name=group3, remote_filename=M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak.tar.gz

source ip address: 192.168.0.80

file timestamp=2011-09-16 07:25:06

file size=2659930

file crc32=3349849513

file url: http://192.168.0.80:8090/group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak.

tar.gz

storage_upload_slave_by_filename

group_name=group3, remote_filename=M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak_big.tar

.gz

source ip address: 192.168.0.80

file timestamp=2011-09-16 07:25:06

file size=2659930

file crc32=3349849513

file url: http://192.168.0.80:8090/group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak_

big.tar.gz

以上返回信息中:

1.       INFO信息返回了存儲服務器的系統信息

2.       Group_name:返回了storage服務器的id信息

3.       remote_filename:返回了storage的存儲路徑。

4.       source_ip address:返回了tracker server的ip地址。

5.       file timestamp:返回時間戳

6.       file size:返回文件大小

7.       file url:返回上傳文件的url地址

 

 

二.命令行的刪除:

/usr/local/bin/fdfs_delete_file  <config_file>  groupid/file_name

例如:刪除上面上傳的文件

/usr/local/bin/fdfs_delete_file /etc/fdfs/client.conf group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak.tar.gz

 

三.下載:

/usr/local/bin/fdfs_download_file <config_file> <file_id> [local_filename]

例如下載上面上傳的文件:

/usr/local/bin/fdfs_download_file /etc/fdfs/client.conf group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak_big.tar.gz /cairo.tar.gz

其中:config_file:只客戶端下載配置文件

      File_id:指文件的路徑

      local_filename:指下載到本地后修改的文件名。

 

 

 

基於php的API

 

注解:

Filename是storage返回的remote_filename

file_id是including group name and filename

group是storage的組名

timestamp是時間戳

local_filename本地文件名

file_ext_name文件擴展名

meta_list詳細文件屬性列表

tracker_server Fast的服務器地址

storage_server    group地址

 

 

獲取FastDFS的版本:

fastdfs_client_version()

返回值類型:字符串

 

獲取錯誤記錄數:

fastdfs_get_last_error_no()

返回值類型:int

 

獲取錯誤信息:

fastdfs_get_last_error_info()

返回值類型:字符串

 

獲取產生反偷令牌函數:

fastdfs_http_gen_token(string file_id, int timestamp)

返回值類型:string

 

通過文件名得到文件詳細信息:

fastdfs_get_file_info(string group_name, string filename)

返回值類型:array

包括信息:時間戳

                     文件大小

                     源地址

 

通過文件id獲取文件信息:

fastdfs_get_file_info1(string file_id)

返回值類型:array

包括信息:時間戳

                     文件大小

                     源地址

 

由主文件名產生從文件名:

string fastdfs_gen_slave_filename(string master_filename, string prefix_name

                [, string file_ext_name])

返回值:字符串

返回信息:從文件名,出錯返回error

 

上傳本地文件到服務器:

array fastdfs_storage_upload_by_filename(string local_filename

         [, string file_ext_name, array meta_list, string group_name,

         array tracker_server, array storage_server])

返回值:array

 

上傳本地文件到服務器:

string fastdfs_storage_upload_by_filename1(string local_filename

         [, string file_ext_name, string meta_list, string group_name,

         array tracker_server, array storage_server])

返回值:string

例如:fastdfs_storage-upload_by_filename1("/zxy.jpg", null, array(), null, $tracker, $storage);

 

上傳文件到存儲服務器的緩存。

fastdfs_storage_upload_by_filebuff(string file_buff

         [, string file_ext_name, string meta_list, string group_name,

         array tracker_server, array storage_server])

返回值:array

 

上傳本地文件到存儲服務器:

fastdfs_storage_upload_appender_by_filename(string local_filename

         [, string file_ext_name, array meta_list, string group_name,

         array tracker_server, array storage_server])

返回值:array

 

 

刪除storage上的文件:

fastdfs_storage_delete_file(string group_name, string remote_filename

         [, array tracker_server, array storage_server])

返回值:boolean

 

刪除storage上的文件:

fastdfs_storage_delete_file1(string file_id

         [, array tracker_server, array storage_server])

返回值:boolean

 

 

下載文件:(請根據調用情況使用下載函數,url的下載可以直接參考組合url地址)

fastdfs_storage_download_file_to_buff(string group_name,

         string remote_filename [, long file_offset, long download_bytes,

         array tracker_server, array storage_server])

         返回值:string

 

下載文件:

fastdfs_storage_download_file_to_buff1(string file_id

        [, long file_offset, long download_bytes,

         array tracker_server, array storage_server])

返回值:string

 

下載文件到本地:

fastdfs_storage_download_file_to_file(string group_name,

         string remote_filename, string local_filename [, long file_offset,

         long download_bytes, array tracker_server, array storage_server])

返回值:boolean

 

設置文件元數據屬性:

fastdfs_storage_set_metadata(string group_name, string remote_filename,

         array meta_list [, string op_type, array tracker_server,

         array storage_server])

返回值:boolean

 

 

設置文件元數據:

fastdfs_storage_get_metadata(string group_name, string remote_filename

         [, array tracker_server, array storage_server])

返回值:boolean

 

 

連接服務器:

fastdfs_connect_server(string ip_addr, int port)

返回值:array:

                            Ip地址

            Port

 

 

斷開服務器連接:

fastdfs_disconnect_server(array server_info)

返回值:boolean

 

 

狀態測試:(主要測試storage的狀態)

fastdfs_active_test(array server_info)

返回值:boolean

 

獲取一個tracker server連接:

fastdfs_tracker_get_connection()

返回值:boolean

 

連接到所有的tracker

fastdfs_tracker_make_all_connections()

返回值:boolean

 

關閉所有的tracker連接:

fastdfs_tracker_close_all_connections()

返回值:boolean

 

 

獲得小組統計信息

fastdfs_tracker_list_groups([string group_name, array tracker_server])

返回值:array

 

獲取storage信息

fastdfs_tracker_query_storage_store([string group_name,

                   array tracker_server])

返回值:array

 

連接所有的tracker

fastdfs_tracker_make_all_connections()

返回值:boolean

 

 

 

獲取存儲服務器的信息:

fastdfs_tracker_query_storage_store([string group_name,

                   array tracker_server])

返回值:array

 

獲取上傳服務器的信息列表:

fastdfs_tracker_query_storage_store_list([string group_name,

                   array tracker_server])

返回值:array

 

 

刪除一個存儲服務器:

fastdfs_tracker_delete_storage(string group_name, string storage_ip)

返回值:boolean

 

實例:

 

1.       上傳一個文件:

   <?php

$tracker = fastdfs_tracker_get_connection();

var_dump($tracker);

 if (!fastdfs_active_test($tracker))

 {

        error_log("errno: " . fastdfs_get_last_error_no() . ", error info: " . fastdfs_get_last_error_info());

        exit(1);

 }

$storage = fastdfs_tracker_query_storage_store();

if (!$storage)

 {

        error_log("errno: " . fastdfs_get_last_error_no() . ", error info: " . fastdfs_get_last_error_info());

        exit(1);

 }

$file_info = fastdfs_storage_upload_by_filename("/zxy.jpg", null, array(), null, $tracker, $storage);

?>

 

2.       下載一個文件

  <?php

$group_name="group3";

$filename="M00/00/00/wKgAUE5zkhH8yBZwAAGH3hvfjJA398.jpg";

$file_id="group3/M00/00/00/wKgAUE5zkhH8yBZwAAGH3hvfjJA398.jpg";

$timestamp="2011-09-17 02:14:41";

 

 

fastdfs_storage_download_file_to_file($group_name,$filename, "test.jpg");

 

?>

 

3.       刪除一個文件

  <?php

        $group_name="group3";

$filename="M00/00/00/wKgAUE5zkhH8yBZwAAGH3hvfjJA398.jpg";

 

 

     echo fastdfs_storage_delete_file($group_name, $filename);

?>

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM