一.命令行的上傳:
上傳命令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);
?>