zoukankan      html  css  js  c++  java
  • 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);

    ?>

  • 相关阅读:
    C++默认参数
    C语言中volatile关键字的作用
    CURL超时处理
    C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
    unix时间戳和localtime
    !!的用处
    linux中grep和egrep的用法
    非阻塞,send后马上close消息能成功发出去吗
    .hpp与.h的区别
    14课作业答疑
  • 原文地址:https://www.cnblogs.com/yipianchuyun/p/15417356.html
Copyright © 2011-2022 走看看