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);

    ?>


  • 相关阅读:
    mojo 接口示例
    MojoliciousLite: 实时的web框架 概述
    接口返回json
    centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
    centos 6.7 perl 5.22 安装DBD 需要使用老的perl版本
    商业智能改变汽车行业
    商业智能改变汽车行业
    读MBA经历回顾(上)目的决定手段——北漂18年(48)
    perl 升级到5.20版本
    Group Commit of Binary Log
  • 原文地址:https://www.cnblogs.com/xinyaoxp/p/3394574.html
Copyright © 2011-2022 走看看