C C++ HTML Objective-C Makefile JavaScript Other
Image Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Image acl.xcworkspace fiber module can be built by xcode; Apr 25, 2018
Image android/acl compile: There's one compiling error in acl_atomic_int64_cas. Oct 1, 2017
Image app remove unused names May 7, 2018
Image build migrate to Android platform OK! Feb 12, 2017
Image build4ios modify acl Makefiles to renaming lib names. Mar 25, 2017
Image dist add tools-ctl for controling master's tools services Feb 26, 2018
Image doc add redis_sentinel class in redis module Mar 18, 2018
Image golang rpm Feb 24, 2018
Image include sqlite lib upgrade to 3.23.1 version May 31, 2018
Image lib modify db module(including mysql, sqlite) for using db more convinien… Aug 2, 2015
Image lib_acl fixed bugs in acl_write_wait.c: when POLLHUP and POLLERR returned, do… May 17, 2018
Image lib_acl_cpp check_client: just choose one from on_refused and on_timeout to repor… Jun 5, 2018
Image lib_dict modify Makefile for MACOS Jan 5, 2015
Image lib_fiber fixed bugs in acl_write_wait.c: when POLLHUP and POLLERR returned, do… May 17, 2018
Image lib_protocol http module: unsafe uri can be corrected internal. Apr 27, 2018
Image lib_rpc compile acl on vc2015 successfully Apr 30, 2016
Image lib_tls supporting for IPV6 Apr 11, 2017
Image packaging check_client: just choose one from on_refused and on_timeout to repor… Jun 5, 2018
Image res doc: add architecture.png Dec 24, 2017
Image test add unix-domain support in pgsql May 8, 2017
Image unit_test modify acl Makefiles to renaming lib names. Mar 25, 2017
Image .clang-format fixed one bug in icmp_stream that should set read_ready flag to 0; Aug 15, 2017
Image .gitignore add xmake.lua Nov 30, 2017
Image .gitlab-ci.yml rm acl-tools package from CI. Mar 7, 2018
Image BUILD.md update BUILD.md Jul 23, 2017
Image CMakeLists.txt modify acl Makefiles to renaming lib names. Mar 25, 2017
Image Doxyfile first commit acl to github Aug 18, 2013
Image Doxyfile_acl_protocol first commit acl to github Aug 18, 2013
Image FAQ.md master: when master can't bind one addr master maybe crash for one ob… Dec 25, 2017
Image LICENSE.txt change acl's license to LGPL.v3; Jan 13, 2017
Image Makefile acl 3.4.1 released! May 7, 2018
Image README.md doc: add architecture.png Dec 24, 2017
Image README_EN.md README: Add toc Jun 29, 2017
Image SAMPLES.md change SAMPLES.md's charset from gbk to utf-8 Jul 10, 2017
Image _config.yml change theme Jul 10, 2017
Image acl.props add set support in Gson. and fix potemtial bug in gson_helper.ipp Jun 14, 2017
Image acl_cpp_vc2003.sln add mail builder into vc2003 Sep 8, 2015
Image acl_cpp_vc2008.sln fixed some bugs in redis and disque; add mail compose and smtp client… Sep 8, 2015
Image acl_cpp_vc2010.sln fixed some bugs in redis and disque; add mail compose and smtp client… Sep 8, 2015
Image acl_cpp_vc2012.sln merge from libfiber Mar 5, 2018
Image acl_cpp_vc2013.sln build ok on vc2013 Mar 5, 2018
Image acl_cpp_vc2015.sln add app/gson app/demo project in sln Oct 11, 2016
Image acl_cpp_vc2017.sln vc projects: remove private_global.h and add acl_define_macosx.h Nov 21, 2017
Image acl_vc2003.sln 整�?�了一些文件格式 Nov 18, 2014
Image acl_vc2010.sln 整�?�了一些文件格式 Nov 18, 2014
Image acl_vc2012.sln 整�?�了一些文件格式 Nov 18, 2014
Image build_env modify redis interface; make socket more safty Jan 17, 2016
Image changes.txt acl 3.4.0 released! Apr 29, 2018
Image circle.yml add circle.yml Jun 6, 2017
Image license.ibm add license.bsd&license.ibm for acl Mar 11, 2015
Image xmake.lua add some xmake.lua for app Dec 1, 2017

README.md

acl -- One advanced C/C++ library for Unix/Windows.

一�?描述

acl 工程�?�一个跨平台�?支�?LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,�?�时�?供更多的实用功�?�库。通过该库,用�?�可以非常容�?�地编写支�?多种模式(多线程�?多进程�?非�?�塞�?触发器�?UDP方式�?协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库�?�?供了常�?应用的客�?�端通信库�?如:HTTP�?SMTP�?ICMP�?redis�?memcache�?beanstalk�?handler socket),常�?�?式编解�?库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 etc。

1.1�?库组�??

本工程主�?包�?� 5 个库及大量示例。5 个库的说�?�如下:

  1. lib_acl: 该库�?�最基础的库,其�? 4 个库均依赖于该库; 该库以 C 语言实现。
  2. lib_protocol: 该库主�?实现了 http 协议及 icmp/ping 协议; 该库以 C 语言实现。
  3. lib_acl_cpp: 该库用 C++ 语言�?装了 lib_acl/lib_protocol 两个库,�?�时增加了一些其�?有价值的功�?�应用。
  4. lib_fiber: 该库为支�?协程库,直接 hook 系统 read/write 等 API,与 epoll 配�??支�?�?并发网络编程。
  5. lib_dict: 该库主�?实现了 KEY-VALUE 的字典式�?储库,该库另外�?依赖于 BDB, CDB 以及 tokyocabinet 库。
  6. lib_tls: 该库�?装了 openssl 库,使 lib_acl 的通信模式可以支�? ssl。
  • 整体架构图 整体架构图

1.2�?功�?�模块组�??

1.2.1�?网络通信库

1.2.1.1�?�?处�?�模块

该模块�?�整个 acl 网络通信最基础的�?式通信模块,不仅支�?网络�?,�?�时�?支�?文件�?,主�?支�?:

  1. 按行读数据,兼容 win32 下的 \r\n,�?�时兼容 UNIX 下的 \n 的结束符
  2. 按行读数据但�?求自动去掉尾�?�的 \n �?� \r\n
  3. 以字符串为�?�隔符读取数据
  4. 读规定长度的数据
  5. 尝试性读一行数据�?�尝试性读规定长度数据
  6. 探测网络 IO 状�?
  7. 写入一行数据
  8. 按格式符写入数据,类似于 fprintf
  9. 文件�?定位操作,类似于 fseek
  10. 一次性写入一组数据,类似于 unix 下的 writev
  11. 将文件�?�短,类似于 ftrunk
  12. 获取文件大小
  13. 获得当前文件�?指�?位置,类似于 ftell
  14. 获得文件尺寸
  15. 获得网络�?的本地地址及远程地址
1.2.1.2�?网络操作模块

该模块主�?支�?网络服务端监�?��?支�? TCP/UDP/UNIX 域套接口)�?网络客�?�端连接�?支�? TCP/UNIX 域套接口)�?DNS 域�?�查询及结果缓�?�?支�?�?用系统 gethostbyname/getaddrinfo 函数和直接发�? DNS 协议两种方式)�?套接口�?socket)操作及取本机网卡等功�?�。

1.2.1.3�?非�?�塞网络�?

支�?非�?�塞方式连接�?读�?按行读,规定长度读)�?写�?写行,写规定长度,写一组数据)等操作。

1.2.1.4�?常�?网络应用协议库

主�?支�?常�?网络应用协议,诸如:HTTP�?SMTP�?ICMP,其中 HTTP�?ICMP 两个模块实现了�?�塞�?非�?�塞两种通信方式;此外,HTTP 协议在C++�?的 lib_acl_cpp 中�?支�?服务端�?客�?�端两种通信方式,当作为服务端使用时,支�?类似于 JAVA HttpServlet 的接口使用方式,当作为客�?�端方式使用时,支�?连接池与集群管�?�方式,该模块�?�时支�? cookie�?session�?HTTP MIME 文件上传�?�?�块传输�?字符集自动转换�?自动解压缩�?断点续传等丰富的功�?�。

1.2.1.5�?常�?网络通信库

支�? memcached�?beanstalk�?handler socket 客�?�端通信库,该通信库支�?连接池方式。

1.2.2�?网络 IO 事件引擎

支�? select(UNIX/LINUX/WIN32)�?poll(UNIX/LINUX)�?epoll(LINUX)�?kqueue(BSD)�?devpoll(solaris)�?iocp(WIN32)�?窗口�?�?�(WIN32) 等系统事件引擎,�?�时支�? Reactor 及 Proactor 两种编程模型。

1.2.3�?网络服务器框架

该模块�?� acl 中最为重�?的模块,�?供了服务器编程中常用的基础设施,该服务器框架来�?于著�?�的 Postfix,在其基础上进行了诸多扩展,目前已经支�?的主�?服务模型有:

1.2.3.1�?进程模型

一个连接一个进程,这种模型的�?点�?�编程简单�?安全稳定,缺点�?�并发度不�?;

1.2.3.2�?线程模型

每个�?进程�?�由线程池中的一组线程处�?�所有的客�?�端连接,采用 IO 事件触发方式,只有当连接有数据可读时才会将连接与一个线程进行绑定,线程处�?�完�?�立即归�?给线程池,这种模型的最大�?点�?�可以用少量的线程便可以处�?�大量的客�?�端连接,而且编程比�?简单�?相对于非�?�塞模型);

1.2.3.3�?非�?�塞模型

每个�?进程�?�由一个单独的非�?�塞线程组�??,该线程采用完全非�?�塞 IO 方式处�?�外来的大量客�?�端连接�?类似于 nginx/squid/ircd),该模型的�?点�?�处�?��?率�?占用资�?少,可以处�?�大量客�?�端连接,缺点�?�编程比�?复杂;

1.2.3.4�?协程模型

虽然非�?�塞服务模型可以获得大并发处�?��?�力,但编程复杂度�?�?,协程模型综�??了大并发的处�?��?�力和�?低的编程复杂度的特点,使编程人�?可以顺序 IO 的编程方式简单实现业务逻辑;

1.2.3.5�?UDP通信模型

该模型主�?为了支�? UDP 网络过程而增加的服务模型;

1.2.3.6�?触发器模型

该模型的实例主�?用来处�?�一些定时任务的�?�台服务过程�?类似于系统的 crontab)。

服务器框架中的�?进程实用采用半驻留服务模型,支�?�?进程预�?�动机�?��?最大最小进程数控�?��?�?进程异常报警�?单一进程监�?�多个地址�?可�?�时监�?�TCP/UDP套接字以及 UNIX 域套接字)�?�?进程安全控�?��?日志输出至 syslog-ng�?多进程TCP连接均匀化;采用配置文件驱动方式,每个服务一个配置文件,方便进程管�?�及服务进程在线升级。

1.2.4�?线程及线程池模块

�?供了跨平台的支�? Posix 规�?的线程接口�?支�?WIN32);线程池模块通过多种措施最大程度地减少线程任务�?�配时的�?冲�?�?用在 acl 服务器框架中多进程多线程服务模型中)。

1.2.5�?HTTP 协议库

�?供了完整的 HTTP 协议实现,支�? HTTP/1.0�?1.1 �?本; �?�时支�?客�?�端模式及服务端模式:

1.2.5.1�?客�?�端模式
  1. 支�?连接池方式;
  2. 支�? chunked 块传输;
  3. 支�?压缩传输;
  4. 支�? SSL 加密传输;
  5. 支�?断点续传;
  6. 支�?设置/获取 Cookies;
  7. 支�? Websocket.
1.2.5.2�?服务端模式
  1. 支�?类似于 Java 的 HttpServlet 使用方式;
  2. 支�? chunked 块传输;
  3. 支�?压缩传输;
  4. 支�? SSL 加密传输;
  5. 支�?断点续传;
  6. 支�?设置/获取 Cookies;
  7. 支�? HTTP MIME 格式;
  8. 支�? Websocket.

1.2.6�?Redis 客�?�端库

  1. 支�? redis 集群模式及非集群模式;
  2. 支�?连接池方式;
  3. 按 redis 数据结构类型�?��??独立的 C++ 类;
  4. 每个命令�?�射为 1 个至多个函数. 具体内容参�?:使用 acl 库编写�?�?的 C++ redis 客�?�端应用

1.2.7�?MIME 协议库

  1. 支�?�?式 MIME 数据解�?;
  2. 支�? MIME RFC2045,RFC2047,RFC822.

1.2.8�?网络协程库

直接 hook 系统底层 IO API,与 epoll 配�??实现网络 IO 的�?并发�?�?性�?�编程框架,通过该模块可以使一些原生的常�?�?�塞式网络库�?如 mysql/redis/http 等客�?�端库)直接支�?�?并发网络操作;通过使用该模块,编程者采用顺序思维编程方式,在协程库内�?�将�?�塞模式转为非�?�塞模式,因而大大�?�?了网络并发�?�力及处�?�性�?�。

1.2.9�?数据库相关

设计了统一的数据库操作接口及连接池处�?�方式,目前支�? sqlite/mysql/postgresql。

1.2.10�?数字键的 K-V �?�?�?储模块�?zdb)

采取 KEY/VALUE �?�块�?储方式,因为 KEY �?定为数字类型,只需内�?计算便可算出 KEY 的位置,KEY 中�?放了 VALUE 的位置,所以对于任何的数据查询只需两次�?�?定位。�?本人在和讯�?��?量统计�?储时,使用该种方式替代了BSD�?TC 等采用B树的 K-V �?储)。

1.2.11�?其�?功�?�库

1.2.11.1�?常用数据结构模块

该模块�?供了常�?的�?希表�?及多种�?希算法)�?动�?数组�?双�?�链表�?平衡二叉树�?�?��?��?二�?�块查找树�?256 叉匹配树等数组结构;�?供了统一的数据结构�?�历方法(采用 acl_foreach)。

1.2.11.2�? 内�?操作模块

该模块�?供三种内�?池模型:

  1. 基本的内�?方式:内�?��?装了系统的 malloc/free API,�?供了内�?校验等安全措施;该方式�?�时�?供外�?�注册接口,�?许使用者注册自己的内�?�?�配模型;
  2. 内�?片(slab) 方式:根据不�?�的尺寸大小�?�配多个定长内�?链,可以有�?地减少内�?碎片,大大�?升内�?�?�配�?率;
  3. 内�?链方式:将长度不一的小内�?�?�配在一条内�?页上,可以非常有�?地使用内�?,减少内�?浪费。
1.2.11.3�?常用字符串操作模块

支�?字符串匹配查找�?前(�?�)�?�比�?�?字符串�?�割�?字符串大小写转换�?H2B/B2H 转换�?URL 编�?/解�?等功�?�。

1.2.11.4�?文件目录模块

支�?多级目录�?�建�?多级目录扫描�?文件句柄缓�?等功�?�,�?�时在处�?�多级目录采用循环方式,�?�免了递归方式时可�?�的�?溢出的�?患。

1.2.11.5�?读配置文件模块

支�?读 name=value 形式的配置文件,value �?长时可以使用反斜杠()�?行,采用配置表方式�?取配置文件中的配置项。

1.2.11.6�?文件�?��?�处�?�库

支�?多组目录�?��?�文件的�?�建�?扫描�?�?�除等操作;常用于临时文件�?��?��?度的服务程序中。

1.2.11.7�?json 解�?库

支�?�?式方式解�? json 数据,�?�时支�? json 数据包组装。

1.2.11.8�?xml 解�?库

支�?�?式方式解�? xml 数据,�?�时支�? xml 数据包组装。

1.2.11.9�?常�?编�?库

�?包括 rfc2047�?url�?base64�?uucode�?qpcode�?charset 等编解�?库,这些解�?库均采用�?式解�?方式,适�??于多种网络 IO 模型�?�?�塞/非�?�塞TCP�?UDP)。

二�?平台支�?及编译

整个工程目前支�? Linux(AS4,5,6, CS4,5,6, ubuntu), Windows, MacOS, FreeBSD, Solaris,Android,IOS。

  • Linux/UNIX: 编译器为 gcc,直接在�?端命令行方式下�?��?�进入 lib_acl/lib_protocol/lib_acl_cpp 目录下,�?行 make 命令即可。
  • Windows: 可以用 VC2003/VC2008/VC2010/VC2012/vc2013/vc2015 进行编译。(如果需�?用 VC6/VC2005 编译,可以参�? VC2003 的编译条件)。
  • MacOS:可使用 xcode 进行编译。
  • �?�时支�? CMake 跨平台编译方式

当在 WIN32 环�?下使用动�?库时有几点需�?注意:

  • 使用 lib_acl 的动�?库时,需�?在用�?�的工程预定义: ACL_DLL;
  • 使用 lib_protocol 动�?库中的 HTTP 库�?� ICMP 库时,需�?在工程中预定义 HTTP_DLL �?� ICMP_DLL;
  • 使用 lib_acl_cpp 的动�?库时,需�?在工程中预定义 ACL_CPP_DLL,如果您使用用 VC2003 编译环�?�?��?需�?预定义 VC2003;
  • 使用 lib_dict 的动�?库时,需�?在工程中预定义 DICT_DLL;
  • 使用 lib_tls 的动�?库时,需�?在工程中预定义 TLS_DLL。
  • 详细编译过程,参�?:acl 库的编译及使用

三�?目录结构说�?�

3.1�?lib_acl

  1. init : 主�?用于�?�始化 acl 基础库
  2. stdlib : �?�一些比�?基础的功�?�函数库,在 stdlib/ 根目录下主�?包括一些有关日志记录�?网络/文件�?处�?��?VSTRING缓冲操作等功�?�函数;在 stdlib/ 下�?有二级目录,如下:
  • 2.1 common : 该目录主�?为一些常用的数据结构及算法的功�?�函数库,象�?希表�?链表�?�?��?��?动�?数组�?堆�?�?缓�?�?平衡二叉树�?模式匹配树等;
  • 2.2 memory : 该目录主�?包�?�与内�?操作相关的函数库,象内�?基础�?�配与校验�?内�?池管�?��?内�?�?�片管�?�等;
  • 2.3 filedir : 该目录主�?包�?�与目录�?�历�?目录�?�建等相关的库;
  • 2.4 configure : 该目录主�?包�?�配置文件的�?��?库;
  • 2.5 iostuff : 该目录主�?包�?�一些常用的IO操作的函数库,象读/写超时�?设置IO句柄的�?�塞模式等;
  • 2.6 string : 该目录主�?包�?�一些常用的字符串操作的库,�?供了比标准C更�?�活�?�?的字符串操作功�?�;
  • 2.7 debug : 主�?用于协助�?试内�?的泄露等功�?�;
  • 2.8 sys : 主�?�?�与不�?�操作系统平台相关的API的�?装函数库;
  1. net: �?�与网络操作相关的函数库,包�?�网络监�?��?网络连接�?DNS查询�?套接口参数设置等功�?�;
  • 3.1 connect : 主�?�?�与网络连接相关的函数库,包�?�网络连接�?域套接口连接等;
  • 3.2 listen : 主�?�?�与网络监�?�相关的函数库,包�?�网络监�?��?域套接口监�?�等;
  • 3.3 dns : 主�?�?�与DNS域�?�查询相关的函数库,包�?�对 gethostbyname 等接口的�?装�?按RFC1035标准直接发�?UDP包方式进行查询等功�?�;
  1. event : 主�?�?装了 select/poll/epoll/iocp/win message/kqueue/devpoll 等系统API接口,使处�?�网络事件更加�?�活�?�?�?�?简单,另外�?包�?�定时器接口,acl 中的�?多网络应用�?�会用�?�这些接口,象 aio�?master 等模块;
  2. aio : 主�?包�?�网络异步操作的功�?�函数,该套函数库在处�?��?并发时有非常�?的�?率,而且�?供了比基础API更为�?级的�?用方式,比使用象 libevent 之类的函数库更为简单,而且�?�线程安全的;
  3. msg : 主�?包�?�了基于线程的�?�?�事件及基于网络的�?�?�事件功�?�;
  4. thread : 主�?�?��?装了�?�个OS平台下的基础线程API,使对外接口保�?一致性,�?除了平台的差异性,�?�时�?�?供了半驻留线程池的函数库,以及对于线程局�?��?量的扩展;
  5. db : 主�?�?�一些与数据库有关的功�?�库,定义了一个通用的数据库连接池的框架�?并且实现了mysql的连接池实例);一个简单的内�?数据库�?由�?希表�?链表�?平衡二叉树组�??而�??);ZDB数据�?储引擎,这�?�一个�?�?的基于数字键的�?储引擎;
  6. proctl : win32 平台下�?��?进程控�?�功�?�库;
  7. code : 常�?编�?函数库,包括 base64编解�?�?URL编解�?以及一些汉字字符集编�?等;
  8. unit_test : 包�?�有关进行 C 语言单�?测试的功�?�库;
  9. xml: �?�一个�?式的 xml 解�?器及构造器,可以支�?�?�塞及�?�塞式网络通信;
  10. json: �?�一个�?式的 json 解�?器及构造器,可以支�?�?�塞及�?�塞式网络通信;
  11. master: �?�在 UNIX 环�?下支�?多种服务器模式的服务器框架,目前主�?支�?多进程模式�?多进程多线程模式�?多进程非�?�塞模式�?多进程触发器模式及 UDP 通信模式;

3.2�?lib_protocol

  1. http: HTTP 协议相关的库,支�? HTTP/1.1,通讯方式支�?�?�步/异步方式
  2. icmp: icmp/ping 协议库,支�?�?�步/异步通信方式
  3. smtp: 邮件客�?�端发信协议库

3.3�?lib_acl_cpp

  1. stdlib: 主�?包�?�字符串处�?�类(string),xml/json 解�?库,zlib 压缩库(依赖于 zlib 库), 日志记录类, 字符集转�?(在UNIX环�?下需�? iconv 库), memcached 客�?�库, 互斥类(支�?线程�?�?文件�?);
  2. stream: 支�?网络�?/文件�?,支�?�?�塞/非�?�塞两种通信方式,在非�?�塞模式下支�? select/poll/epoll/iocp/win32 message/kqueue/devpoll;支�? ssl 加密传输(�?�塞及非�?�塞方式,需�? polarssl库);
  3. ipc: 在非�?�塞通信方式,�?供了�?�塞模块与非�?�塞模块整�??的方式;
  4. http: 比�?完整的 HTTP 通信库及协议解�?库,支�?客�?�端及服务端模式,支�? ssl/gzip 传输方式; 支�?类似于 Java HttpServlet 方式的大�?��?�接口,方便编写 CGI 及 WEB 服务器程序;
  5. db: �?装了 MYSQL/SQLITE 库,支�?数据库连接池;
  6. hsocket: 实现了完整的 handler-socket 客�?�端通信库;
  7. mime: 支�?完整的与邮件编�?相关的库(邮件的 rfc2045-rfc2047/rfc822/base64/uucode 编�?及解�?库).
  8. master: �?装了 C 库的服务器框架库
  9. beanstalk: �?�?��?��?�应用 beanstalkd 的客�?�端通信库,支�?连接池
  10. connpool: 通用的连接池库
  11. hscoket: mysql 插件 handle-socket 的客�?�端通信库,支�?连接池
  12. memcache: memcached 应用的客�?�端库,支�?连接池及连接池集群管�?�
  13. queue: �?�?文件�?��?�操作库
  14. ipc: �?�塞/非�?�塞通信整�??库
  15. session: HTTP 会话库
  16. redis: 完整实现了 redis 协议的客�?�端通信库(总共 12 个大类,150 多个命令),支�?连接池及连接池集群管�?�
  17. disque: 支�?集群�?�?��?��?�服务 disque 的客�?�端库,支�?连接池及连接池集群管�?�

3.4�?lib_fiber

  1. c 目录:该目录下主�?为 C 语言�?本实现的网络协程库,其中包�?��?文件及头文件
  2. cpp 目录:该目录下�?装了 C 语言�?本的网络协程库
  3. samples 目录:该目录下有大量的使用协程库编程的例�?

3.5�?图例

  • 类索引图: 类索引图
  • 异步 IO 类继承图 异步 IO 类继承图
  • IO �?继承图 IO �?继承图
  • acl 服务框架�?护进程事件处�?��?程 acl 服务�?护进程事件处�?��?程
  • acl 服务器框架�?进程事件处�?��?程 服务�?进程事件�?程
  • 接收上传文件的 CGI 程序: 接收上传文件的 CGI 程序
  • 文件下载客�?�端程序: 文件下载客�?�端程序
  • 网页下载程序: 网页下载程序

3.6�?acl 库中有大量示例可供参�?,请参�?:SAMPLES.md

3.7�?acl 使用 FAQ 参�? FAQ.md

四�?�?在使用acl

iqiyi 263 hexun v1 lecloud ksyun weibangong xianyou foundao

五�?使用许可

六�?参�?