diff --git a/docker/dockerfile_local-v6.0.9/README.md b/docker/dockerfile_local-v6.0.9/README.md
new file mode 100644
index 0000000..1489324
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/README.md
@@ -0,0 +1,22 @@
+# FastDFS Dockerfile local (本地包构建)
+
+感谢余大的杰作!
+
+本目录包含了docker构建镜像,集群安装帮助手册
+
+1、目录结构
+ ./build_image-v6.0.9 fastdfs-v6.0.9版本的构建docker镜像
+
+ ./fastdfs-conf 配置文件,其实和build_image_v.x下的文件是相同的。
+ |--setting_conf.sh 设置配置文件的脚本
+
+ ./自定义镜像和安装手册.txt
+
+ ./qa.txt 来自于bbs论坛的问题整理:http://bbs.chinaunix.net/forum-240-1.html
+
+
+2、fastdfs 版本安装变化
+
+ + v6.0.9 依赖libevent、libfastcommon和libserverframe, v6.0.8及以下依赖libevent和libfastcommon两个库,其中libfastcommon是 FastDFS 自身提供的。
+
+ + v6.0.9 适配fastdfs-nginx-module-1.23(及以上版本),v6.0.8及以下是fastdfs-nginx-module-1.22
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/Dockerfile b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/Dockerfile
new file mode 100644
index 0000000..2a1671e
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/Dockerfile
@@ -0,0 +1,74 @@
+# 选择系统镜像作为基础镜像,可以使用超小的Linux镜像alpine
+#FROM centos:7
+FROM alpine:3.12
+
+LABEL MAINTAINER liyanjing 284223249@qq.com
+
+# 0.安装包位置,fdfs的基本目录和存储目录
+ENV INSTALL_PATH=/usr/local/src \
+ LIBFASTCOMMON_VERSION="1.0.57" \
+ FASTDFS_VERSION="6.08" \
+ FASTDFS_NGINX_MODULE_VERSION="1.22" \
+ NGINX_VERSION="1.22.0" \
+ TENGINE_VERSION="2.3.3"
+
+# 0.change the system source for installing libs
+RUN echo "http://mirrors.aliyun.com/alpine/v3.12/main" > /etc/apk/repositories \
+ && echo "http://mirrors.aliyun.com/alpine/v3.12/community" >> /etc/apk/repositories
+
+# 1.复制安装包
+ADD soft ${INSTALL_PATH}
+
+# 2.环境安装
+# - 创建fdfs的存储目录
+# - 安装依赖
+# - 安装libfastcommon
+# - 安装fastdfs
+# - 安装nginx,设置nginx和fastdfs联合环境,并配置nginx
+#Run yum -y install -y gcc gcc-c++ libevent libevent-devel make automake autoconf libtool perl pcre pcre-devel zlib zlib-devel openssl openssl-devel zip unzip net-tools wget vim lsof \
+RUN apk update && apk add --no-cache --virtual .build-deps bash autoconf gcc libc-dev make pcre-dev zlib-dev linux-headers gnupg libxslt-dev gd-dev geoip-dev wget \
+ && cd ${INSTALL_PATH} \
+ && tar -zxf libfastcommon-${LIBFASTCOMMON_VERSION}.tar.gz \
+ && tar -zxf fastdfs-${FASTDFS_VERSION}.tar.gz \
+ && tar -zxf fastdfs-nginx-module-${FASTDFS_NGINX_MODULE_VERSION}.tar.gz \
+ && tar -zxf nginx-${NGINX_VERSION}.tar.gz \
+ \
+ && cd ${INSTALL_PATH}/libfastcommon-${LIBFASTCOMMON_VERSION}/ \
+ && ./make.sh \
+ && ./make.sh install \
+ && cd ${INSTALL_PATH}/fastdfs-${FASTDFS_VERSION}/ \
+ && ./make.sh \
+ && ./make.sh install \
+ \
+ && cd ${INSTALL_PATH}/nginx-${NGINX_VERSION}/ \
+ && ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-stream=dynamic \
+ --add-module=${INSTALL_PATH}/fastdfs-nginx-module-${FASTDFS_NGINX_MODULE_VERSION}/src/ \
+ && make \
+ && make install \
+ \
+ && rm -rf ${INSTALL_PATH}/* \
+ && apk del .build-deps gcc libc-dev make linux-headers gnupg libxslt-dev gd-dev geoip-dev wget
+
+# 3.添加配置文件,目标路径以/结尾,docker会把它当作目录,不存在时,会自动创建
+COPY conf/*.* /etc/fdfs/
+COPY nginx_conf/nginx.conf /usr/local/nginx/conf/
+COPY nginx_conf.d/*.conf /usr/local/nginx/conf.d/
+COPY start.sh /
+
+
+ENV TZ=Asia/Shanghai
+
+# 4.更改启动脚本执行权限,设置时区为中国时间
+RUN chmod u+x /start.sh \
+ && apk add --no-cache bash pcre-dev zlib-dev \
+ \
+ && apk add -U tzdata \
+ && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
+ && apk del tzdata && rm -rf /var/cache/apk/*
+
+EXPOSE 22122 23000 9088
+
+WORKDIR /
+
+# 镜像启动
+ENTRYPOINT ["/bin/bash","/start.sh"]
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/client.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/client.conf
new file mode 100644
index 0000000..77d12f7
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/client.conf
@@ -0,0 +1,71 @@
+# connect timeout in seconds
+# default value is 30s
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds
+# default value is 30s
+network_timeout = 60
+
+# the base path to store log files
+base_path = /data/fastdfs_data
+
+# tracker_server can ocur more than once for multi tracker servers.
+# the value format of tracker_server is "HOST:PORT",
+# the HOST can be hostname or ip address,
+# and the HOST can be dual IPs or hostnames seperated by comma,
+# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
+# or two different types of inner (intranet) IPs.
+# for example: 192.168.2.100,122.244.141.46:22122
+# another eg.: 192.168.1.10,172.17.4.21:22122
+
+tracker_server = 192.168.0.196:22122
+tracker_server = 192.168.0.197:22122
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = false
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# if load FastDFS parameters from tracker server
+# since V4.05
+# default value is false
+load_fdfs_parameters_from_tracker = false
+
+# if use storage ID instead of IP address
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# default value is false
+# since V4.05
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V4.05
+storage_ids_filename = storage_ids.conf
+
+
+#HTTP settings
+http.tracker_server_port = 80
+
+#use "#include" directive to include HTTP other settiongs
+##include http.conf
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/http.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/http.conf
new file mode 100644
index 0000000..385bc45
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/http.conf
@@ -0,0 +1,29 @@
+# HTTP default content type
+http.default_content_type = application/octet-stream
+
+# MIME types mapping filename
+# MIME types file format: MIME_type extensions
+# such as: image/jpeg jpeg jpg jpe
+# you can use apache's MIME file: mime.types
+http.mime_types_filename = mime.types
+
+# if use token to anti-steal
+# default value is false (0)
+http.anti_steal.check_token = false
+
+# token TTL (time to live), seconds
+# default value is 600
+http.anti_steal.token_ttl = 900
+
+# secret key to generate anti-steal token
+# this parameter must be set when http.anti_steal.check_token set to true
+# the length of the secret key should not exceed 128 bytes
+http.anti_steal.secret_key = FastDFS1234567890
+
+# return the content of the file when check token fail
+# default value is empty (no file sepecified)
+http.anti_steal.token_check_fail = /home/yuqing/fastdfs/conf/anti-steal.jpg
+
+# if support multi regions for HTTP Range
+# default value is true
+http.multi_range.enabed = true
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/mime.types b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/mime.types
new file mode 100644
index 0000000..c83a690
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/mime.types
@@ -0,0 +1,1065 @@
+# This is a comment. I love comments.
+
+# This file controls what Internet media types are sent to the client for
+# given file extension(s). Sending the correct media type to the client
+# is important so they know how to handle the content of the file.
+# Extra types can either be added here or by using an AddType directive
+# in your config files. For more information about Internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type
+# registry is at .
+
+# MIME type Extensions
+application/activemessage
+application/andrew-inset ez
+application/applefile
+application/atom+xml atom
+application/atomcat+xml atomcat
+application/atomicmail
+application/atomsvc+xml atomsvc
+application/auth-policy+xml
+application/batch-smtp
+application/beep+xml
+application/cals-1840
+application/ccxml+xml ccxml
+application/cellml+xml
+application/cnrp+xml
+application/commonground
+application/conference-info+xml
+application/cpl+xml
+application/csta+xml
+application/cstadata+xml
+application/cybercash
+application/davmount+xml davmount
+application/dca-rft
+application/dec-dx
+application/dialog-info+xml
+application/dicom
+application/dns
+application/dvcs
+application/ecmascript ecma
+application/edi-consent
+application/edi-x12
+application/edifact
+application/epp+xml
+application/eshop
+application/fastinfoset
+application/fastsoap
+application/fits
+application/font-tdpfr pfr
+application/h224
+application/http
+application/hyperstudio stk
+application/iges
+application/im-iscomposing+xml
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/iotp
+application/ipp
+application/isup
+application/javascript js
+application/json json
+application/kpml-request+xml
+application/kpml-response+xml
+application/lost+xml lostxml
+application/mac-binhex40 hqx
+application/mac-compactpro cpt
+application/macwriteii
+application/marc mrc
+application/mathematica ma nb mb
+application/mathml+xml mathml
+application/mbms-associated-procedure-description+xml
+application/mbms-deregister+xml
+application/mbms-envelope+xml
+application/mbms-msk+xml
+application/mbms-msk-response+xml
+application/mbms-protection-description+xml
+application/mbms-reception-report+xml
+application/mbms-register+xml
+application/mbms-register-response+xml
+application/mbms-user-service-description+xml
+application/mbox mbox
+application/media_control+xml
+application/mediaservercontrol+xml mscml
+application/mikey
+application/moss-keys
+application/moss-signature
+application/mosskey-data
+application/mosskey-request
+application/mp4 mp4s
+application/mpeg4-generic
+application/mpeg4-iod
+application/mpeg4-iod-xmt
+application/msword doc dot
+application/mxf mxf
+application/nasdata
+application/news-transmission
+application/nss
+application/ocsp-request
+application/ocsp-response
+application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc
+application/oda oda
+application/oebps-package+xml
+application/ogg ogx
+application/parityfec
+application/patch-ops-error+xml xer
+application/pdf pdf
+application/pgp-encrypted pgp
+application/pgp-keys
+application/pgp-signature asc sig
+application/pics-rules prf
+application/pidf+xml
+application/pidf-diff+xml
+application/pkcs10 p10
+application/pkcs7-mime p7m p7c
+application/pkcs7-signature p7s
+application/pkix-cert cer
+application/pkix-crl crl
+application/pkix-pkipath pkipath
+application/pkixcmp pki
+application/pls+xml pls
+application/poc-settings+xml
+application/postscript ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww cww
+application/prs.nprend
+application/prs.plucker
+application/qsig
+application/rdf+xml rdf
+application/reginfo+xml rif
+application/relax-ng-compact-syntax rnc
+application/remote-printing
+application/resource-lists+xml rl
+application/resource-lists-diff+xml rld
+application/riscos
+application/rlmi+xml
+application/rls-services+xml rs
+application/rsd+xml rsd
+application/rss+xml rss
+application/rtf rtf
+application/rtx
+application/samlassertion+xml
+application/samlmetadata+xml
+application/sbml+xml sbml
+application/scvp-cv-request scq
+application/scvp-cv-response scs
+application/scvp-vp-request spq
+application/scvp-vp-response spp
+application/sdp sdp
+application/set-payment
+application/set-payment-initiation setpay
+application/set-registration
+application/set-registration-initiation setreg
+application/sgml
+application/sgml-open-catalog
+application/shf+xml shf
+application/sieve
+application/simple-filter+xml
+application/simple-message-summary
+application/simplesymbolcontainer
+application/slate
+application/smil
+application/smil+xml smi smil
+application/soap+fastinfoset
+application/soap+xml
+application/sparql-query rq
+application/sparql-results+xml srx
+application/spirits-event+xml
+application/srgs gram
+application/srgs+xml grxml
+application/ssml+xml ssml
+application/timestamp-query
+application/timestamp-reply
+application/tve-trigger
+application/ulpfec
+application/vemmi
+application/vividence.scriptfile
+application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.pic-bw-large plb
+application/vnd.3gpp.pic-bw-small psb
+application/vnd.3gpp.pic-bw-var pvb
+application/vnd.3gpp.sms
+application/vnd.3gpp2.bcmcsinfo+xml
+application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap tcap
+application/vnd.3m.post-it-notes pwn
+application/vnd.accpac.simply.aso aso
+application/vnd.accpac.simply.imp imp
+application/vnd.acucobol acu
+application/vnd.acucorp atc acutc
+application/vnd.adobe.xdp+xml xdp
+application/vnd.adobe.xfdf xfdf
+application/vnd.aether.imp
+application/vnd.americandynamics.acc acc
+application/vnd.amiga.ami ami
+application/vnd.anser-web-certificate-issue-initiation cii
+application/vnd.anser-web-funds-transfer-initiation fti
+application/vnd.antix.game-component atx
+application/vnd.apple.installer+xml mpkg
+application/vnd.arastra.swi swi
+application/vnd.audiograph aep
+application/vnd.autopackage
+application/vnd.avistar+xml
+application/vnd.blueice.multipass mpm
+application/vnd.bmi bmi
+application/vnd.businessobjects rep
+application/vnd.cab-jscript
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.cendio.thinlinc.clientconf
+application/vnd.chemdraw+xml cdxml
+application/vnd.chipnuts.karaoke-mmd mmd
+application/vnd.cinderella cdy
+application/vnd.cirpack.isdn-ext
+application/vnd.claymore cla
+application/vnd.clonk.c4group c4g c4d c4f c4p c4u
+application/vnd.commerce-battelle
+application/vnd.commonspace csp cst
+application/vnd.contact.cmsg cdbcmsg
+application/vnd.cosmocaller cmc
+application/vnd.crick.clicker clkx
+application/vnd.crick.clicker.keyboard clkk
+application/vnd.crick.clicker.palette clkp
+application/vnd.crick.clicker.template clkt
+application/vnd.crick.clicker.wordbank clkw
+application/vnd.criticaltools.wbs+xml wbs
+application/vnd.ctc-posml pml
+application/vnd.ctct.ws+xml
+application/vnd.cups-pdf
+application/vnd.cups-postscript
+application/vnd.cups-ppd ppd
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.curl curl
+application/vnd.cybank
+application/vnd.data-vision.rdz rdz
+application/vnd.denovo.fcselayout-link fe_launch
+application/vnd.dna dna
+application/vnd.dolby.mlp mlp
+application/vnd.dpgraph dpg
+application/vnd.dreamfactory dfac
+application/vnd.dvb.esgcontainer
+application/vnd.dvb.ipdcesgaccess
+application/vnd.dvb.iptv.alfec-base
+application/vnd.dvb.iptv.alfec-enhancement
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart mag
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven nml
+application/vnd.epson.esf esf
+application/vnd.epson.msf msf
+application/vnd.epson.quickanime qam
+application/vnd.epson.salt slt
+application/vnd.epson.ssf ssf
+application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml es3 et3
+application/vnd.eudora.data
+application/vnd.ezpix-album ez2
+application/vnd.ezpix-package ez3
+application/vnd.fdf fdf
+application/vnd.ffsns
+application/vnd.fints
+application/vnd.flographit gph
+application/vnd.fluxtime.clip ftc
+application/vnd.font-fontforge-sfd
+application/vnd.framemaker fm frame maker
+application/vnd.frogans.fnc fnc
+application/vnd.frogans.ltf ltf
+application/vnd.fsc.weblaunch fsc
+application/vnd.fujitsu.oasys oas
+application/vnd.fujitsu.oasys2 oa2
+application/vnd.fujitsu.oasys3 oa3
+application/vnd.fujitsu.oasysgp fg5
+application/vnd.fujitsu.oasysprs bh2
+application/vnd.fujixerox.art-ex
+application/vnd.fujixerox.art4
+application/vnd.fujixerox.hbpl
+application/vnd.fujixerox.ddd ddd
+application/vnd.fujixerox.docuworks xdw
+application/vnd.fujixerox.docuworks.binder xbd
+application/vnd.fut-misnet
+application/vnd.fuzzysheet fzs
+application/vnd.genomatix.tuxedo txd
+application/vnd.gmx gmx
+application/vnd.google-earth.kml+xml kml
+application/vnd.google-earth.kmz kmz
+application/vnd.grafeq gqf gqs
+application/vnd.gridmp
+application/vnd.groove-account gac
+application/vnd.groove-help ghf
+application/vnd.groove-identity-message gim
+application/vnd.groove-injector grv
+application/vnd.groove-tool-message gtm
+application/vnd.groove-tool-template tpl
+application/vnd.groove-vcard vcg
+application/vnd.handheld-entertainment+xml zmm
+application/vnd.hbci hbci
+application/vnd.hcl-bireports
+application/vnd.hhe.lesson-player les
+application/vnd.hp-hpgl hpgl
+application/vnd.hp-hpid hpid
+application/vnd.hp-hps hps
+application/vnd.hp-jlyt jlt
+application/vnd.hp-pcl pcl
+application/vnd.hp-pclxl pclxl
+application/vnd.httphone
+application/vnd.hydrostatix.sof-data sfd-hdstx
+application/vnd.hzn-3d-crossword x3d
+application/vnd.ibm.afplinedata
+application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay mpy
+application/vnd.ibm.modcap afp listafp list3820
+application/vnd.ibm.rights-management irm
+application/vnd.ibm.secure-container sc
+application/vnd.iccprofile icc icm
+application/vnd.igloader igl
+application/vnd.immervision-ivp ivp
+application/vnd.immervision-ivu ivu
+application/vnd.informedcontrol.rms+xml
+application/vnd.intercon.formnet xpw xpx
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo qbo
+application/vnd.intu.qfx qfx
+application/vnd.iptc.g2.conceptitem+xml
+application/vnd.iptc.g2.knowledgeitem+xml
+application/vnd.iptc.g2.newsitem+xml
+application/vnd.iptc.g2.packageitem+xml
+application/vnd.ipunplugged.rcprofile rcprofile
+application/vnd.irepository.package+xml irp
+application/vnd.is-xpr xpr
+application/vnd.jam jam
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms rms
+application/vnd.jisp jisp
+application/vnd.joost.joda-archive joda
+application/vnd.kahootz ktz ktr
+application/vnd.kde.karbon karbon
+application/vnd.kde.kchart chrt
+application/vnd.kde.kformula kfo
+application/vnd.kde.kivio flw
+application/vnd.kde.kontour kon
+application/vnd.kde.kpresenter kpr kpt
+application/vnd.kde.kspread ksp
+application/vnd.kde.kword kwd kwt
+application/vnd.kenameaapp htke
+application/vnd.kidspiration kia
+application/vnd.kinar kne knp
+application/vnd.koan skp skd skt skm
+application/vnd.kodak-descriptor sse
+application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop lbd
+application/vnd.llamagraphics.life-balance.exchange+xml lbe
+application/vnd.lotus-1-2-3 123
+application/vnd.lotus-approach apr
+application/vnd.lotus-freelance pre
+application/vnd.lotus-notes nsf
+application/vnd.lotus-organizer org
+application/vnd.lotus-screencam scm
+application/vnd.lotus-wordpro lwp
+application/vnd.macports.portpkg portpkg
+application/vnd.marlin.drm.actiontoken+xml
+application/vnd.marlin.drm.conftoken+xml
+application/vnd.marlin.drm.license+xml
+application/vnd.marlin.drm.mdcf
+application/vnd.mcd mcd
+application/vnd.medcalcdata mc1
+application/vnd.mediastation.cdkey cdkey
+application/vnd.meridian-slingshot
+application/vnd.mfer mwf
+application/vnd.mfmp mfm
+application/vnd.micrografx.flo flo
+application/vnd.micrografx.igx igx
+application/vnd.mif mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf daf
+application/vnd.mobius.dis dis
+application/vnd.mobius.mbk mbk
+application/vnd.mobius.mqy mqy
+application/vnd.mobius.msl msl
+application/vnd.mobius.plc plc
+application/vnd.mobius.txf txf
+application/vnd.mophun.application mpn
+application/vnd.mophun.certificate mpc
+application/vnd.motorola.flexsuite
+application/vnd.motorola.flexsuite.adsi
+application/vnd.motorola.flexsuite.fis
+application/vnd.motorola.flexsuite.gotap
+application/vnd.motorola.flexsuite.kmr
+application/vnd.motorola.flexsuite.ttc
+application/vnd.motorola.flexsuite.wem
+application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml xul
+application/vnd.ms-artgalry cil
+application/vnd.ms-asf asf
+application/vnd.ms-cab-compressed cab
+application/vnd.ms-excel xls xlm xla xlc xlt xlw
+application/vnd.ms-fontobject eot
+application/vnd.ms-htmlhelp chm
+application/vnd.ms-ims ims
+application/vnd.ms-lrm lrm
+application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.ms-project mpp mpt
+application/vnd.ms-tnef
+application/vnd.ms-wmdrm.lic-chlg-req
+application/vnd.ms-wmdrm.lic-resp
+application/vnd.ms-wmdrm.meter-chlg-req
+application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-works wps wks wcm wdb
+application/vnd.ms-wpl wpl
+application/vnd.ms-xpsdocument xps
+application/vnd.mseq mseq
+application/vnd.msign
+application/vnd.multiad.creator
+application/vnd.multiad.creator.cif
+application/vnd.music-niff
+application/vnd.musician mus
+application/vnd.muvee.style msty
+application/vnd.ncd.control
+application/vnd.ncd.reference
+application/vnd.nervana
+application/vnd.netfpx
+application/vnd.neurolanguage.nlu nlu
+application/vnd.noblenet-directory nnd
+application/vnd.noblenet-sealer nns
+application/vnd.noblenet-web nnw
+application/vnd.nokia.catalogs
+application/vnd.nokia.conml+wbxml
+application/vnd.nokia.conml+xml
+application/vnd.nokia.isds-radio-presets
+application/vnd.nokia.iptv.config+xml
+application/vnd.nokia.landmark+wbxml
+application/vnd.nokia.landmark+xml
+application/vnd.nokia.landmarkcollection+xml
+application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data ngdat
+application/vnd.nokia.n-gage.symbian.install n-gage
+application/vnd.nokia.ncd
+application/vnd.nokia.pcd+wbxml
+application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset rpst
+application/vnd.nokia.radio-presets rpss
+application/vnd.novadigm.edm edm
+application/vnd.novadigm.edx edx
+application/vnd.novadigm.ext ext
+application/vnd.oasis.opendocument.chart odc
+application/vnd.oasis.opendocument.chart-template otc
+application/vnd.oasis.opendocument.formula odf
+application/vnd.oasis.opendocument.formula-template otf
+application/vnd.oasis.opendocument.graphics odg
+application/vnd.oasis.opendocument.graphics-template otg
+application/vnd.oasis.opendocument.image odi
+application/vnd.oasis.opendocument.image-template oti
+application/vnd.oasis.opendocument.presentation odp
+application/vnd.oasis.opendocument.presentation-template otp
+application/vnd.oasis.opendocument.spreadsheet ods
+application/vnd.oasis.opendocument.spreadsheet-template ots
+application/vnd.oasis.opendocument.text odt
+application/vnd.oasis.opendocument.text-master otm
+application/vnd.oasis.opendocument.text-template ott
+application/vnd.oasis.opendocument.text-web oth
+application/vnd.obn
+application/vnd.olpc-sugar xo
+application/vnd.oma-scws-config
+application/vnd.oma-scws-http-request
+application/vnd.oma-scws-http-response
+application/vnd.oma.bcast.associated-procedure-parameter+xml
+application/vnd.oma.bcast.drm-trigger+xml
+application/vnd.oma.bcast.imd+xml
+application/vnd.oma.bcast.ltkm
+application/vnd.oma.bcast.notification+xml
+application/vnd.oma.bcast.provisioningtrigger
+application/vnd.oma.bcast.sgboot
+application/vnd.oma.bcast.sgdd+xml
+application/vnd.oma.bcast.sgdu
+application/vnd.oma.bcast.simple-symbol-container
+application/vnd.oma.bcast.smartcard-trigger+xml
+application/vnd.oma.bcast.sprov+xml
+application/vnd.oma.bcast.stkm
+application/vnd.oma.dcd
+application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml dd2
+application/vnd.oma.drm.risd+xml
+application/vnd.oma.group-usage-list+xml
+application/vnd.oma.poc.detailed-progress-report+xml
+application/vnd.oma.poc.final-report+xml
+application/vnd.oma.poc.groups+xml
+application/vnd.oma.poc.invocation-descriptor+xml
+application/vnd.oma.poc.optimized-progress-report+xml
+application/vnd.oma.xcap-directory+xml
+application/vnd.omads-email+xml
+application/vnd.omads-file+xml
+application/vnd.omads-folder+xml
+application/vnd.omaloc-supl-init
+application/vnd.openofficeorg.extension oxt
+application/vnd.osa.netdeploy
+application/vnd.osgi.dp dp
+application/vnd.otps.ct-kip+xml
+application/vnd.palm prc pdb pqa oprc
+application/vnd.paos.xml
+application/vnd.pg.format str
+application/vnd.pg.osasli ei6
+application/vnd.piaccess.application-licence
+application/vnd.picsel efif
+application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn plf
+application/vnd.powerbuilder6 pbd
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.preminet
+application/vnd.previewsystems.box box
+application/vnd.proteus.magazine mgz
+application/vnd.publishare-delta-tree qps
+application/vnd.pvi.ptid1 ptid
+application/vnd.pwg-multiplexed
+application/vnd.pwg-xhtml-print+xml
+application/vnd.qualcomm.brew-app-res
+application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
+application/vnd.rapid
+application/vnd.recordare.musicxml mxl
+application/vnd.recordare.musicxml+xml
+application/vnd.renlearn.rlprint
+application/vnd.rn-realmedia rm
+application/vnd.route66.link66+xml link66
+application/vnd.ruckus.download
+application/vnd.s3sms
+application/vnd.sbm.mid2
+application/vnd.scribus
+application/vnd.sealed.3df
+application/vnd.sealed.csf
+application/vnd.sealed.doc
+application/vnd.sealed.eml
+application/vnd.sealed.mht
+application/vnd.sealed.net
+application/vnd.sealed.ppt
+application/vnd.sealed.tiff
+application/vnd.sealed.xls
+application/vnd.sealedmedia.softseal.html
+application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail see
+application/vnd.sema sema
+application/vnd.semd semd
+application/vnd.semf semf
+application/vnd.shana.informed.formdata ifm
+application/vnd.shana.informed.formtemplate itp
+application/vnd.shana.informed.interchange iif
+application/vnd.shana.informed.package ipk
+application/vnd.simtech-mindmapper twd twds
+application/vnd.smaf mmf
+application/vnd.software602.filler.form+xml
+application/vnd.software602.filler.form-xml-zip
+application/vnd.solent.sdkm+xml sdkm sdkd
+application/vnd.spotfire.dxp dxp
+application/vnd.spotfire.sfs sfs
+application/vnd.sss-cod
+application/vnd.sss-dtf
+application/vnd.sss-ntf
+application/vnd.street-stream
+application/vnd.sun.wadl+xml
+application/vnd.sus-calendar sus susp
+application/vnd.svd svd
+application/vnd.swiftview-ics
+application/vnd.syncml+xml xsm
+application/vnd.syncml.dm+wbxml bdm
+application/vnd.syncml.dm+xml xdm
+application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive tao
+application/vnd.tmobile-livetv tmo
+application/vnd.trid.tpt tpt
+application/vnd.triscape.mxs mxs
+application/vnd.trueapp tra
+application/vnd.truedoc
+application/vnd.ufdl ufd ufdl
+application/vnd.uiq.theme utz
+application/vnd.umajin umj
+application/vnd.unity unityweb
+application/vnd.uoml+xml uoml
+application/vnd.uplanet.alert
+application/vnd.uplanet.alert-wbxml
+application/vnd.uplanet.bearer-choice
+application/vnd.uplanet.bearer-choice-wbxml
+application/vnd.uplanet.cacheop
+application/vnd.uplanet.cacheop-wbxml
+application/vnd.uplanet.channel
+application/vnd.uplanet.channel-wbxml
+application/vnd.uplanet.list
+application/vnd.uplanet.list-wbxml
+application/vnd.uplanet.listcmd
+application/vnd.uplanet.listcmd-wbxml
+application/vnd.uplanet.signal
+application/vnd.vcx vcx
+application/vnd.vd-study
+application/vnd.vectorworks
+application/vnd.vidsoft.vidconference
+application/vnd.visio vsd vst vss vsw
+application/vnd.visionary vis
+application/vnd.vividence.scriptfile
+application/vnd.vsf vsf
+application/vnd.wap.sic
+application/vnd.wap.slc
+application/vnd.wap.wbxml wbxml
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/vnd.webturbo wtb
+application/vnd.wfa.wsc
+application/vnd.wmc
+application/vnd.wmf.bootstrap
+application/vnd.wordperfect wpd
+application/vnd.wqd wqd
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf stf
+application/vnd.wv.csp+wbxml
+application/vnd.wv.csp+xml
+application/vnd.wv.ssp+xml
+application/vnd.xara xar
+application/vnd.xfdl xfdl
+application/vnd.xmi+xml
+application/vnd.xmpie.cpkg
+application/vnd.xmpie.dpkg
+application/vnd.xmpie.plan
+application/vnd.xmpie.ppkg
+application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic hvd
+application/vnd.yamaha.hv-script hvs
+application/vnd.yamaha.hv-voice hvp
+application/vnd.yamaha.smaf-audio saf
+application/vnd.yamaha.smaf-phrase spf
+application/vnd.yellowriver-custom-menu cmp
+application/vnd.zzazz.deck+xml zaz
+application/voicexml+xml vxml
+application/watcherinfo+xml
+application/whoispp-query
+application/whoispp-response
+application/winhlp hlp
+application/wita
+application/wordperfect5.1
+application/wsdl+xml wsdl
+application/wspolicy+xml wspolicy
+application/x-ace-compressed ace
+application/x-bcpio bcpio
+application/x-bittorrent torrent
+application/x-bzip bz
+application/x-bzip2 bz2 boz
+application/x-cdlink vcd
+application/x-chat chat
+application/x-chess-pgn pgn
+application/x-compress
+application/x-cpio cpio
+application/x-csh csh
+application/x-director dcr dir dxr fgd
+application/x-dvi dvi
+application/x-futuresplash spl
+application/x-gtar gtar
+application/x-gzip
+application/x-hdf hdf
+application/x-latex latex
+application/x-ms-wmd wmd
+application/x-ms-wmz wmz
+application/x-msaccess mdb
+application/x-msbinder obd
+application/x-mscardfile crd
+application/x-msclip clp
+application/x-msdownload exe dll com bat msi
+application/x-msmediaview mvb m13 m14
+application/x-msmetafile wmf
+application/x-msmoney mny
+application/x-mspublisher pub
+application/x-msschedule scd
+application/x-msterminal trm
+application/x-mswrite wri
+application/x-netcdf nc cdf
+application/x-pkcs12 p12 pfx
+application/x-pkcs7-certificates p7b spc
+application/x-pkcs7-certreqresp p7r
+application/x-rar-compressed rar
+application/x-sh sh
+application/x-shar shar
+application/x-shockwave-flash swf
+application/x-stuffit sit
+application/x-stuffitx sitx
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-tar tar
+application/x-tcl tcl
+application/x-tex tex
+application/x-texinfo texinfo texi
+application/x-ustar ustar
+application/x-wais-source src
+application/x-x509-ca-cert der crt
+application/x400-bp
+application/xcap-att+xml
+application/xcap-caps+xml
+application/xcap-el+xml
+application/xcap-error+xml
+application/xcap-ns+xml
+application/xenc+xml xenc
+application/xhtml+xml xhtml xht
+application/xml xml xsl
+application/xml-dtd dtd
+application/xml-external-parsed-entity
+application/xmpp+xml
+application/xop+xml xop
+application/xslt+xml xslt
+application/xspf+xml xspf
+application/xv+xml mxml xhvml xvml xvm
+application/zip zip
+audio/32kadpcm
+audio/3gpp
+audio/3gpp2
+audio/ac3
+audio/amr
+audio/amr-wb
+audio/amr-wb+
+audio/asc
+audio/basic au snd
+audio/bv16
+audio/bv32
+audio/clearmode
+audio/cn
+audio/dat12
+audio/dls
+audio/dsr-es201108
+audio/dsr-es202050
+audio/dsr-es202211
+audio/dsr-es202212
+audio/dvi4
+audio/eac3
+audio/evrc
+audio/evrc-qcp
+audio/evrc0
+audio/evrc1
+audio/evrcb
+audio/evrcb0
+audio/evrcb1
+audio/evrcwb
+audio/evrcwb0
+audio/evrcwb1
+audio/g722
+audio/g7221
+audio/g723
+audio/g726-16
+audio/g726-24
+audio/g726-32
+audio/g726-40
+audio/g728
+audio/g729
+audio/g7291
+audio/g729d
+audio/g729e
+audio/gsm
+audio/gsm-efr
+audio/ilbc
+audio/l16
+audio/l20
+audio/l24
+audio/l8
+audio/lpc
+audio/midi mid midi kar rmi
+audio/mobile-xmf
+audio/mp4 mp4a
+audio/mp4a-latm
+audio/mpa
+audio/mpa-robust
+audio/mpeg mpga mp2 mp2a mp3 m2a m3a
+audio/mpeg4-generic
+audio/ogg oga ogg spx
+audio/parityfec
+audio/pcma
+audio/pcmu
+audio/prs.sid
+audio/qcelp
+audio/red
+audio/rtp-enc-aescm128
+audio/rtp-midi
+audio/rtx
+audio/smv
+audio/smv0
+audio/smv-qcp
+audio/sp-midi
+audio/t140c
+audio/t38
+audio/telephone-event
+audio/tone
+audio/ulpfec
+audio/vdvi
+audio/vmr-wb
+audio/vnd.3gpp.iufp
+audio/vnd.4sb
+audio/vnd.audiokoz
+audio/vnd.celp
+audio/vnd.cisco.nse
+audio/vnd.cmles.radio-events
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.digital-winds eol
+audio/vnd.dlna.adts
+audio/vnd.dolby.mlp
+audio/vnd.dts dts
+audio/vnd.dts.hd dtshd
+audio/vnd.everad.plj
+audio/vnd.hns.audio
+audio/vnd.lucent.voice lvp
+audio/vnd.ms-playready.media.pya pya
+audio/vnd.nokia.mobile-xmf
+audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800 ecelp4800
+audio/vnd.nuera.ecelp7470 ecelp7470
+audio/vnd.nuera.ecelp9600 ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.qcelp
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.sealedmedia.softseal.mpeg
+audio/vnd.vmx.cvsd
+audio/vorbis
+audio/vorbis-config
+audio/wav wav
+audio/x-aiff aif aiff aifc
+audio/x-mpegurl m3u
+audio/x-ms-wax wax
+audio/x-ms-wma wma
+audio/x-pn-realaudio ram ra
+audio/x-pn-realaudio-plugin rmp
+audio/x-wav wav
+chemical/x-cdx cdx
+chemical/x-cif cif
+chemical/x-cmdf cmdf
+chemical/x-cml cml
+chemical/x-csml csml
+chemical/x-pdb pdb
+chemical/x-xyz xyz
+image/bmp bmp
+image/cgm cgm
+image/fits
+image/g3fax g3
+image/gif gif
+image/ief ief
+image/jp2
+image/jpeg jpeg jpg jpe
+image/jpm
+image/jpx
+image/naplps
+image/png png
+image/prs.btif btif
+image/prs.pti
+image/svg+xml svg svgz
+image/t38
+image/tiff tiff tif
+image/tiff-fx
+image/vnd.adobe.photoshop psd
+image/vnd.cns.inf2
+image/vnd.djvu djvu djv
+image/vnd.dwg dwg
+image/vnd.dxf dxf
+image/vnd.fastbidsheet fbs
+image/vnd.fpx fpx
+image/vnd.fst fst
+image/vnd.fujixerox.edmics-mmr mmr
+image/vnd.fujixerox.edmics-rlc rlc
+image/vnd.globalgraphics.pgb
+image/vnd.microsoft.icon
+image/vnd.mix
+image/vnd.ms-modi mdi
+image/vnd.net-fpx npx
+image/vnd.sealed.png
+image/vnd.sealedmedia.softseal.gif
+image/vnd.sealedmedia.softseal.jpg
+image/vnd.svf
+image/vnd.wap.wbmp wbmp
+image/vnd.xiff xif
+image/x-cmu-raster ras
+image/x-cmx cmx
+image/x-icon ico
+image/x-pcx pcx
+image/x-pict pic pct
+image/x-portable-anymap pnm
+image/x-portable-bitmap pbm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-rgb rgb
+image/x-xbitmap xbm
+image/x-xpixmap xpm
+image/x-xwindowdump xwd
+message/cpim
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/global
+message/global-delivery-status
+message/global-disposition-notification
+message/global-headers
+message/http
+message/news
+message/partial
+message/rfc822 eml mime
+message/s-http
+message/sip
+message/sipfrag
+message/tracking-status
+message/vnd.si.simp
+model/iges igs iges
+model/mesh msh mesh silo
+model/vnd.dwf dwf
+model/vnd.flatland.3dml
+model/vnd.gdl gdl
+model/vnd.gs.gdl
+model/vnd.gtw gtw
+model/vnd.moml+xml
+model/vnd.mts mts
+model/vnd.parasolid.transmit.binary
+model/vnd.parasolid.transmit.text
+model/vnd.vtu vtu
+model/vrml wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/calendar ics ifb
+text/css css
+text/csv csv
+text/directory
+text/dns
+text/enriched
+text/html html htm
+text/parityfec
+text/plain txt text conf def list log in
+text/prs.fallenstein.rst
+text/prs.lines.tag dsc
+text/red
+text/rfc822-headers
+text/richtext rtx
+text/rtf
+text/rtp-enc-aescm128
+text/rtx
+text/sgml sgml sgm
+text/t140
+text/tab-separated-values tsv
+text/troff t tr roff man me ms
+text/ulpfec
+text/uri-list uri uris urls
+text/vnd.abc
+text/vnd.curl
+text/vnd.dmclientscript
+text/vnd.esmertec.theme-descriptor
+text/vnd.fly fly
+text/vnd.fmi.flexstor flx
+text/vnd.graphviz gv
+text/vnd.in3d.3dml 3dml
+text/vnd.in3d.spot spot
+text/vnd.iptc.newsml
+text/vnd.iptc.nitf
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage
+text/vnd.net2phone.commcenter.command
+text/vnd.si.uricatalogue
+text/vnd.sun.j2me.app-descriptor jad
+text/vnd.trolltech.linguist
+text/vnd.wap.si
+text/vnd.wap.sl
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/x-asm s asm
+text/x-c c cc cxx cpp h hh dic
+text/x-fortran f for f77 f90
+text/x-pascal p pas
+text/x-java-source java
+text/x-setext etx
+text/x-uuencode uu
+text/x-vcalendar vcs
+text/x-vcard vcf
+text/xml
+text/xml-external-parsed-entity
+video/3gpp 3gp
+video/3gpp-tt
+video/3gpp2 3g2
+video/bmpeg
+video/bt656
+video/celb
+video/dv
+video/h261 h261
+video/h263 h263
+video/h263-1998
+video/h263-2000
+video/h264 h264
+video/jpeg jpgv
+video/jpeg2000
+video/jpm jpm jpgm
+video/mj2 mj2 mjp2
+video/mp1s
+video/mp2p
+video/mp2t
+video/mp4 mp4 mp4v mpg4
+video/mp4v-es
+video/mpeg mpeg mpg mpe m1v m2v
+video/mpeg4-generic
+video/mpv
+video/nv
+video/ogg ogv
+video/parityfec
+video/pointer
+video/quicktime qt mov
+video/raw
+video/rtp-enc-aescm128
+video/rtx
+video/smpte292m
+video/ulpfec
+video/vc1
+video/vnd.cctv
+video/vnd.dlna.mpeg-tts
+video/vnd.fvt fvt
+video/vnd.hns.video
+video/vnd.iptvforum.1dparityfec-1010
+video/vnd.iptvforum.1dparityfec-2005
+video/vnd.iptvforum.2dparityfec-1010
+video/vnd.iptvforum.2dparityfec-2005
+video/vnd.iptvforum.ttsavc
+video/vnd.iptvforum.ttsmpeg2
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl mxu m4u
+video/vnd.ms-playready.media.pyv pyv
+video/vnd.nokia.interleaved-multimedia
+video/vnd.nokia.videovoip
+video/vnd.objectvideo
+video/vnd.sealed.mpeg1
+video/vnd.sealed.mpeg4
+video/vnd.sealed.swf
+video/vnd.sealedmedia.softseal.mov
+video/vnd.vivo viv
+video/x-fli fli
+video/x-ms-asf asf asx
+video/x-ms-wm wm
+video/x-ms-wmv wmv
+video/x-ms-wmx wmx
+video/x-ms-wvx wvx
+video/x-msvideo avi
+video/x-sgi-movie movie
+x-conference/x-cooltalk ice
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/mod_fastdfs.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/mod_fastdfs.conf
new file mode 100644
index 0000000..1fbebcf
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/mod_fastdfs.conf
@@ -0,0 +1,137 @@
+# connect timeout in seconds
+# default value is 30s
+connect_timeout=15
+
+# network recv and send timeout in seconds
+# default value is 30s
+network_timeout=30
+
+# the base path to store log files
+base_path=/data/fastdfs_data
+
+# if load FastDFS parameters from tracker server
+# since V1.12
+# default value is false
+load_fdfs_parameters_from_tracker=true
+
+# storage sync file max delay seconds
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V1.12
+# default value is 86400 seconds (one day)
+storage_sync_file_max_delay = 86400
+
+# if use storage ID instead of IP address
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# default value is false
+# since V1.13
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V1.13
+storage_ids_filename = storage_ids.conf
+
+# FastDFS tracker_server can ocur more than once, and tracker_server format is
+# "host:port", host can be hostname or ip address
+# valid only when load_fdfs_parameters_from_tracker is true
+tracker_server = 192.168.209.121:22122
+tracker_server = 192.168.209.122:22122
+
+# the port of the local storage server
+# the default value is 23000
+storage_server_port=23000
+
+# the group name of the local storage server
+group_name=group1
+
+# if the url / uri including the group name
+# set to false when uri like /M00/00/00/xxx
+# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
+# default value is false
+url_have_group_name = true
+
+# path(disk or mount point) count, default value is 1
+# must same as storage.conf
+store_path_count=1
+
+# store_path#, based 0, if store_path0 not exists, it's value is base_path
+# the paths must be exist
+# must same as storage.conf
+store_path0=/data/fastdfs/upload/path0
+#store_path1=/home/yuqing/fastdfs1
+
+# standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level=info
+
+# set the log filename, such as /usr/local/apache2/logs/mod_fastdfs.log
+# empty for output to stderr (apache and nginx error_log file)
+log_filename=
+
+# response mode when the file not exist in the local file system
+## proxy: get the content from other storage server, then send to client
+## redirect: redirect to the original storage server (HTTP Header is Location)
+response_mode=proxy
+
+# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
+# multi aliases split by comma. empty value means auto set by OS type
+# this paramter used to get all ip address of the local host
+# default values is empty
+if_alias_prefix=
+
+# use "#include" directive to include HTTP config file
+# NOTE: #include is an include directive, do NOT remove the # before include
+#include http.conf
+
+
+# if support flv
+# default value is false
+# since v1.15
+flv_support = true
+
+# flv file extension name
+# default value is flv
+# since v1.15
+flv_extension = flv
+
+
+## 如果在此存储服务器上支持多组时,有几组就设置几组。单组为0.
+## 一台服务器没有必要运行多个group的storage,因为stroage本身支持多存储目录的
+# set the group count
+# set to none zero to support multi-group on this storage server
+# set to 0 for single group only
+# groups settings section as [group1], [group2], ..., [groupN]
+# default value is 0
+# since v1.14
+group_count = 0
+
+## 如果在此存储服务器上支持多组时,有几组就设置几组
+# group settings for group #1
+# since v1.14
+# when support multi-group on this storage server, uncomment following section
+#[group1]
+#group_name=group1
+#storage_server_port=23000
+#store_path_count=2
+#store_path0=/home/yuqing/fastdfs
+#store_path1=/home/yuqing/fastdfs1
+
+# group settings for group #2
+# since v1.14
+# when support multi-group, uncomment following section as neccessary
+#[group2]
+#group_name=group2
+#storage_server_port=23000
+#store_path_count=1
+#store_path0=/home/yuqing/fastdfs
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/storage.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/storage.conf
new file mode 100644
index 0000000..555054d
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/storage.conf
@@ -0,0 +1,353 @@
+# is this config file disabled
+# false for enabled
+# true for disabled
+disabled = false
+
+# the name of the group this storage server belongs to
+#
+# comment or remove this item for fetching from tracker server,
+# in this case, use_storage_id must set to true in tracker.conf,
+# and storage_ids.conf must be configured correctly.
+group_name = group1
+
+# bind an address of this host
+# empty for bind all addresses of this host
+bind_addr =
+
+# if bind an address of this host when connect to other servers
+# (this storage server as a client)
+# true for binding the address configured by the above parameter: "bind_addr"
+# false for binding any address of this host
+client_bind = true
+
+# the storage server port
+port = 23000
+
+# connect timeout in seconds
+# default value is 30
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds for send and recv
+# default value is 30
+network_timeout = 60
+
+# the heart beat interval in seconds
+# the storage server send heartbeat to tracker server periodically
+# default value is 30
+heart_beat_interval = 30
+
+# disk usage report interval in seconds
+# the storage server send disk usage report to tracker server periodically
+# default value is 300
+stat_report_interval = 60
+
+# the base path to store data and log files
+# NOTE: the binlog files maybe are large, make sure
+# the base path has enough disk space,
+# eg. the disk free space should > 50GB
+base_path = /data/fastdfs_data
+
+# max concurrent connections the server supported,
+# you should set this parameter larger, eg. 10240
+# default value is 256
+max_connections = 1024
+
+# the buff size to recv / send data from/to network
+# this parameter must more than 8KB
+# 256KB or 512KB is recommended
+# default value is 64KB
+# since V2.00
+buff_size = 256KB
+
+# accept thread count
+# default value is 1 which is recommended
+# since V4.07
+accept_threads = 1
+
+# work thread count
+# work threads to deal network io
+# default value is 4
+# since V2.00
+work_threads = 4
+
+# if disk read / write separated
+## false for mixed read and write
+## true for separated read and write
+# default value is true
+# since V2.00
+disk_rw_separated = true
+
+# disk reader thread count per store path
+# for mixed read / write, this parameter can be 0
+# default value is 1
+# since V2.00
+disk_reader_threads = 1
+
+# disk writer thread count per store path
+# for mixed read / write, this parameter can be 0
+# default value is 1
+# since V2.00
+disk_writer_threads = 1
+
+# when no entry to sync, try read binlog again after X milliseconds
+# must > 0, default value is 200ms
+sync_wait_msec = 50
+
+# after sync a file, usleep milliseconds
+# 0 for sync successively (never call usleep)
+sync_interval = 0
+
+# storage sync start time of a day, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+sync_start_time = 00:00
+
+# storage sync end time of a day, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+sync_end_time = 23:59
+
+# write to the mark file after sync N files
+# default value is 500
+write_mark_file_freq = 500
+
+# disk recovery thread count
+# default value is 1
+# since V6.04
+disk_recovery_threads = 3
+
+# store path (disk or mount point) count, default value is 1
+store_path_count = 1
+
+# store_path#, based on 0, to configure the store paths to store files
+# if store_path0 not exists, it's value is base_path (NOT recommended)
+# the paths must be exist.
+#
+# IMPORTANT NOTE:
+# the store paths' order is very important, don't mess up!!!
+# the base_path should be independent (different) of the store paths
+
+store_path0 = /data/fastdfs/upload/path0
+#store_path1 = /home/yuqing/fastdfs2
+
+# subdir_count * subdir_count directories will be auto created under each
+# store_path (disk), value can be 1 to 256, default value is 256
+subdir_count_per_path = 256
+
+# tracker_server can ocur more than once for multi tracker servers.
+# the value format of tracker_server is "HOST:PORT",
+# the HOST can be hostname or ip address,
+# and the HOST can be dual IPs or hostnames seperated by comma,
+# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
+# or two different types of inner (intranet) IPs.
+# for example: 192.168.2.100,122.244.141.46:22122
+# another eg.: 192.168.1.10,172.17.4.21:22122
+
+tracker_server = 192.168.209.121:22122
+tracker_server = 192.168.209.122:22122
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+#unix group name to run this program,
+#not set (empty) means run by the group of current user
+run_by_group =
+
+#unix username to run this program,
+#not set (empty) means run by current user
+run_by_user =
+
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" (only one asterisk) means match all ip addresses
+# we can use CIDR ips like 192.168.5.64/26
+# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
+# for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+# allow_hosts=192.168.5.64/26
+allow_hosts = *
+
+# the mode of the files distributed to the data path
+# 0: round robin(default)
+# 1: random, distributted by hash code
+file_distribute_path_mode = 0
+
+# valid when file_distribute_to_path is set to 0 (round robin).
+# when the written file count reaches this number, then rotate to next path.
+# rotate to the first path (00/00) after the last path (such as FF/FF).
+# default value is 100
+file_distribute_rotate_count = 100
+
+# call fsync to disk when write big file
+# 0: never call fsync
+# other: call fsync when written bytes >= this bytes
+# default value is 0 (never call fsync)
+fsync_after_written_bytes = 0
+
+# sync log buff to disk every interval seconds
+# must > 0, default value is 10 seconds
+sync_log_buff_interval = 1
+
+# sync binlog buff / cache to disk every interval seconds
+# default value is 60 seconds
+sync_binlog_buff_interval = 1
+
+# sync storage stat info to disk every interval seconds
+# default value is 300 seconds
+sync_stat_file_interval = 300
+
+# thread stack size, should >= 512KB
+# default value is 512KB
+thread_stack_size = 512KB
+
+# the priority as a source server for uploading file.
+# the lower this value, the higher its uploading priority.
+# default value is 10
+upload_priority = 10
+
+# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
+# multi aliases split by comma. empty value means auto set by OS type
+# default values is empty
+if_alias_prefix =
+
+# if check file duplicate, when set to true, use FastDHT to store file indexes
+# 1 or yes: need check
+# 0 or no: do not check
+# default value is 0
+check_file_duplicate = 0
+
+# file signature method for check file duplicate
+## hash: four 32 bits hash code
+## md5: MD5 signature
+# default value is hash
+# since V4.01
+file_signature_method = hash
+
+# namespace for storing file indexes (key-value pairs)
+# this item must be set when check_file_duplicate is true / on
+key_namespace = FastDFS
+
+# set keep_alive to 1 to enable persistent connection with FastDHT servers
+# default value is 0 (short connection)
+keep_alive = 0
+
+# you can use "#include filename" (not include double quotes) directive to
+# load FastDHT server list, when the filename is a relative path such as
+# pure filename, the base path is the base path of current/this config file.
+# must set FastDHT server list when check_file_duplicate is true / on
+# please see INSTALL of FastDHT for detail
+##include /home/yuqing/fastdht/conf/fdht_servers.conf
+
+# if log to access log
+# default value is false
+# since V4.00
+use_access_log = false
+
+# if rotate the access log every day
+# default value is false
+# since V4.00
+rotate_access_log = false
+
+# rotate access log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.00
+access_log_rotate_time = 00:00
+
+# if compress the old access log by gzip
+# default value is false
+# since V6.04
+compress_old_access_log = false
+
+# compress the access log days before
+# default value is 1
+# since V6.04
+compress_access_log_days_before = 7
+
+# if rotate the error log every day
+# default value is false
+# since V4.02
+rotate_error_log = false
+
+# rotate error log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.02
+error_log_rotate_time = 00:00
+
+# if compress the old error log by gzip
+# default value is false
+# since V6.04
+compress_old_error_log = false
+
+# compress the error log days before
+# default value is 1
+# since V6.04
+compress_error_log_days_before = 7
+
+# rotate access log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_access_log_size = 0
+
+# rotate error log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_error_log_size = 0
+
+# keep days of the log files
+# 0 means do not delete old log files
+# default value is 0
+log_file_keep_days = 0
+
+# if skip the invalid record when sync file
+# default value is false
+# since V4.02
+file_sync_skip_invalid_record = false
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = true
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# if compress the binlog files by gzip
+# default value is false
+# since V6.01
+compress_binlog = true
+
+# try to compress binlog time, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 01:30
+# since V6.01
+compress_binlog_time = 01:30
+
+# if check the mark of store path to prevent confusion
+# recommend to set this parameter to true
+# if two storage servers (instances) MUST use a same store path for
+# some specific purposes, you should set this parameter to false
+# default value is true
+# since V6.03
+check_store_path_mark = true
+
+# use the ip address of this storage server if domain_name is empty,
+# else this domain name will ocur in the url redirected by the tracker server
+http.domain_name =
+
+# the port of the web server on this storage server
+http.server_port = 8888
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/storage_ids.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/storage_ids.conf
new file mode 100644
index 0000000..adc3019
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/storage_ids.conf
@@ -0,0 +1,16 @@
+#
+#
+# id is a natural number (1, 2, 3 etc.),
+# 6 bits of the id length is enough, such as 100001
+#
+# storage ip or hostname can be dual IPs seperated by comma,
+# one is an inner (intranet) IP and another is an outer (extranet) IP,
+# or two different types of inner (intranet) IPs
+# for example: 192.168.2.100,122.244.141.46
+# another eg.: 192.168.1.10,172.17.4.21
+#
+# the port is optional. if you run more than one storaged instances
+# in a server, you must specified the port to distinguish different instances.
+
+#100001 group1 192.168.0.196
+#100002 group1 192.168.0.197
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/tracker.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/tracker.conf
new file mode 100644
index 0000000..4ef8a55
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/conf/tracker.conf
@@ -0,0 +1,329 @@
+# is this config file disabled
+# false for enabled
+# true for disabled
+disabled = false
+
+# bind an address of this host
+# empty for bind all addresses of this host
+bind_addr =
+
+# the tracker server port
+port = 22122
+
+# connect timeout in seconds
+# default value is 30
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds for send and recv
+# default value is 30
+network_timeout = 60
+
+# the base path to store data and log files
+base_path = /data/fastdfs_data
+
+# max concurrent connections this server support
+# you should set this parameter larger, eg. 10240
+# default value is 256
+max_connections = 1024
+
+# accept thread count
+# default value is 1 which is recommended
+# since V4.07
+accept_threads = 1
+
+# work thread count
+# work threads to deal network io
+# default value is 4
+# since V2.00
+work_threads = 4
+
+# the min network buff size
+# default value 8KB
+min_buff_size = 8KB
+
+# the max network buff size
+# default value 128KB
+max_buff_size = 128KB
+
+# the method for selecting group to upload files
+# 0: round robin
+# 1: specify group
+# 2: load balance, select the max free space group to upload file
+store_lookup = 2
+
+# which group to upload file
+# when store_lookup set to 1, must set store_group to the group name
+store_group = group2
+
+# which storage server to upload file
+# 0: round robin (default)
+# 1: the first server order by ip address
+# 2: the first server order by priority (the minimal)
+# Note: if use_trunk_file set to true, must set store_server to 1 or 2
+store_server = 0
+
+# which path (means disk or mount point) of the storage server to upload file
+# 0: round robin
+# 2: load balance, select the max free space path to upload file
+store_path = 0
+
+# which storage server to download file
+# 0: round robin (default)
+# 1: the source storage server which the current file uploaded to
+download_server = 0
+
+# reserved storage space for system or other applications.
+# if the free(available) space of any stoarge server in
+# a group <= reserved_storage_space, no file can be uploaded to this group.
+# bytes unit can be one of follows:
+### G or g for gigabyte(GB)
+### M or m for megabyte(MB)
+### K or k for kilobyte(KB)
+### no unit for byte(B)
+### XX.XX% as ratio such as: reserved_storage_space = 10%
+reserved_storage_space = 20%
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+#unix group name to run this program,
+#not set (empty) means run by the group of current user
+run_by_group=
+
+#unix username to run this program,
+#not set (empty) means run by current user
+run_by_user =
+
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" (only one asterisk) means match all ip addresses
+# we can use CIDR ips like 192.168.5.64/26
+# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
+# for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+# allow_hosts=192.168.5.64/26
+allow_hosts = *
+
+# sync log buff to disk every interval seconds
+# default value is 10 seconds
+sync_log_buff_interval = 1
+
+# check storage server alive interval seconds
+check_active_interval = 120
+
+# thread stack size, should >= 64KB
+# default value is 256KB
+thread_stack_size = 256KB
+
+# auto adjust when the ip address of the storage server changed
+# default value is true
+storage_ip_changed_auto_adjust = true
+
+# storage sync file max delay seconds
+# default value is 86400 seconds (one day)
+# since V2.00
+storage_sync_file_max_delay = 86400
+
+# the max time of storage sync a file
+# default value is 300 seconds
+# since V2.00
+storage_sync_file_max_time = 300
+
+# if use a trunk file to store several small files
+# default value is false
+# since V3.00
+use_trunk_file = false
+
+# the min slot size, should <= 4KB
+# default value is 256 bytes
+# since V3.00
+slot_min_size = 256
+
+# the max slot size, should > slot_min_size
+# store the upload file to trunk file when it's size <= this value
+# default value is 16MB
+# since V3.00
+slot_max_size = 1MB
+
+# the alignment size to allocate the trunk space
+# default value is 0 (never align)
+# since V6.05
+# NOTE: the larger the alignment size, the less likely of disk
+# fragmentation, but the more space is wasted.
+trunk_alloc_alignment_size = 256
+
+# if merge contiguous free spaces of trunk file
+# default value is false
+# since V6.05
+trunk_free_space_merge = true
+
+# if delete / reclaim the unused trunk files
+# default value is false
+# since V6.05
+delete_unused_trunk_files = false
+
+# the trunk file size, should >= 4MB
+# default value is 64MB
+# since V3.00
+trunk_file_size = 64MB
+
+# if create trunk file advancely
+# default value is false
+# since V3.06
+trunk_create_file_advance = false
+
+# the time base to create trunk file
+# the time format: HH:MM
+# default value is 02:00
+# since V3.06
+trunk_create_file_time_base = 02:00
+
+# the interval of create trunk file, unit: second
+# default value is 38400 (one day)
+# since V3.06
+trunk_create_file_interval = 86400
+
+# the threshold to create trunk file
+# when the free trunk file size less than the threshold,
+# will create he trunk files
+# default value is 0
+# since V3.06
+trunk_create_file_space_threshold = 20G
+
+# if check trunk space occupying when loading trunk free spaces
+# the occupied spaces will be ignored
+# default value is false
+# since V3.09
+# NOTICE: set this parameter to true will slow the loading of trunk spaces
+# when startup. you should set this parameter to true when neccessary.
+trunk_init_check_occupying = false
+
+# if ignore storage_trunk.dat, reload from trunk binlog
+# default value is false
+# since V3.10
+# set to true once for version upgrade when your version less than V3.10
+trunk_init_reload_from_binlog = false
+
+# the min interval for compressing the trunk binlog file
+# unit: second, 0 means never compress
+# FastDFS compress the trunk binlog when trunk init and trunk destroy
+# recommand to set this parameter to 86400 (one day)
+# default value is 0
+# since V5.01
+trunk_compress_binlog_min_interval = 86400
+
+# the interval for compressing the trunk binlog file
+# unit: second, 0 means never compress
+# recommand to set this parameter to 86400 (one day)
+# default value is 0
+# since V6.05
+trunk_compress_binlog_interval = 86400
+
+# compress the trunk binlog time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 03:00
+# since V6.05
+trunk_compress_binlog_time_base = 03:00
+
+# max backups for the trunk binlog file
+# default value is 0 (never backup)
+# since V6.05
+trunk_binlog_max_backups = 7
+
+# if use storage server ID instead of IP address
+# if you want to use dual IPs for storage server, you MUST set
+# this parameter to true, and configure the dual IPs in the file
+# configured by following item "storage_ids_filename", such as storage_ids.conf
+# default value is false
+# since V4.00
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# this parameter is valid only when use_storage_id set to true
+# since V4.00
+storage_ids_filename = storage_ids.conf
+
+# id type of the storage server in the filename, values are:
+## ip: the ip address of the storage server
+## id: the server id of the storage server
+# this paramter is valid only when use_storage_id set to true
+# default value is ip
+# since V4.03
+id_type_in_filename = id
+
+# if store slave file use symbol link
+# default value is false
+# since V4.01
+store_slave_file_use_link = false
+
+# if rotate the error log every day
+# default value is false
+# since V4.02
+rotate_error_log = false
+
+# rotate error log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.02
+error_log_rotate_time = 00:00
+
+# if compress the old error log by gzip
+# default value is false
+# since V6.04
+compress_old_error_log = false
+
+# compress the error log days before
+# default value is 1
+# since V6.04
+compress_error_log_days_before = 7
+
+# rotate error log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_error_log_size = 0
+
+# keep days of the log files
+# 0 means do not delete old log files
+# default value is 0
+log_file_keep_days = 0
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = true
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# HTTP port on this tracker server
+http.server_port = 8080
+
+# check storage HTTP server alive interval seconds
+# <= 0 for never check
+# default value is 30
+http.check_alive_interval = 30
+
+# check storage HTTP server alive type, values are:
+# tcp : connect to the storge server with HTTP port only,
+# do not request and get response
+# http: storage check alive url must return http status 200
+# default value is tcp
+http.check_alive_type = tcp
+
+# check storage HTTP server alive uri/url
+# NOTE: storage embed HTTP server support uri: /status.html
+http.check_alive_uri = /status.html
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/nginx_conf/nginx.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/nginx_conf/nginx.conf
new file mode 100644
index 0000000..2abee9b
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/nginx_conf/nginx.conf
@@ -0,0 +1,33 @@
+worker_processes 1;
+worker_rlimit_nofile 65535; #务必先修改服务器的max open files 数。
+
+error_log /data/fastdfs_data/logs/nginx-error.log;
+
+events {
+ use epoll; #服务器若是Linux 2.6+,你应该使用epoll。
+ worker_connections 65535;
+}
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ access_log /data/fastdfs_data/logs/nginx-access.log main;
+ sendfile on;
+ keepalive_timeout 65;
+
+ gzip on;
+ gzip_min_length 2k;
+ gzip_buffers 8 32k;
+ gzip_http_version 1.1;
+ gzip_comp_level 2;
+ gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
+ gzip_vary on;
+
+ include /usr/local/nginx/conf.d/*.conf;
+
+}
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/fastdfs-6.08.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/fastdfs-6.08.tar.gz
new file mode 100644
index 0000000..d36a0ef
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/fastdfs-6.08.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/fastdfs-nginx-module-1.22.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/fastdfs-nginx-module-1.22.tar.gz
new file mode 100644
index 0000000..d0cdfa7
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/fastdfs-nginx-module-1.22.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/libfastcommon-1.0.57.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/libfastcommon-1.0.57.tar.gz
new file mode 100644
index 0000000..f675ffc
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/libfastcommon-1.0.57.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/nginx-1.22.0.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/nginx-1.22.0.tar.gz
new file mode 100644
index 0000000..dada996
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/soft/nginx-1.22.0.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/start.sh b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/start.sh
new file mode 100644
index 0000000..b7f3495
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.8/start.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+# fastdfs 配置文件,我设置的存储路径,需要提前创建
+FASTDFS_BASE_PATH=/data/fastdfs_data \
+FASTDFS_STORE_PATH=/data/fastdfs/upload \
+
+# 启用参数
+# - tracker : 启动tracker_server 服务
+# - storage : 启动storage 服务
+start_parameter=$1
+
+if [ ! -d "$FASTDFS_BASE_PATH" ]; then
+ mkdir -p ${FASTDFS_BASE_PATH};
+fi
+
+function start_tracker(){
+
+ /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
+ tail -f /data/fastdfs_data/logs/trackerd.log
+
+}
+
+function start_storage(){
+ if [ ! -d "$FASTDFS_STORE_PATH" ]; then
+ mkdir -p ${FASTDFS_STORE_PATH}/{path0,path1,path2,path3};
+ fi
+ /usr/bin/fdfs_storaged /etc/fdfs/storage.conf;
+ sleep 5
+
+ # nginx日志存储目录为/data/fastdfs_data/logs/,手动创建一下,防止storage启动慢,还没有来得及创建logs目录
+ if [ ! -d "$FASTDFS_BASE_PATH/logs" ]; then
+ mkdir -p ${FASTDFS_BASE_PATH}/logs;
+ fi
+
+ /usr/local/nginx/sbin/nginx;
+ tail -f /data/fastdfs_data/logs/storaged.log;
+}
+
+function run (){
+
+ case ${start_parameter} in
+ tracker)
+ echo "启动tracker"
+ start_tracker
+ ;;
+ storage)
+ echo "启动storage"
+ start_storage
+ ;;
+ *)
+ echo "请指定要启动哪个服务,tracker还是storage(二选一),传参为tracker | storage"
+ esac
+}
+
+run
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/Dockerfile b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/Dockerfile
new file mode 100644
index 0000000..b13d635
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/Dockerfile
@@ -0,0 +1,83 @@
+# 选择系统镜像作为基础镜像,可以使用超小的Linux镜像alpine
+#FROM centos:7
+FROM alpine:3.16
+
+LABEL MAINTAINER liyanjing 284223249@qq.com
+
+# 注意
+# v6.0.9 依赖libfastcommon和libserverframe, v6.0.8及以下依赖libevent和libfastcommon两个库,其中libfastcommon是 FastDFS 官方提供的
+# v6.0.9 适配fastdfs-nginx-module-1.23,v6.0.8及以下是fastdfs-nginx-module-1.22
+
+# 0.安装包位置,fdfs的基本目录和存储目录
+ENV INSTALL_PATH=/usr/local/src \
+ LIBFASTCOMMON_VERSION="1.0.60" \
+ LIBSERVERFRAME_VERSION="1.1.19" \
+ FASTDFS_VERSION="V6.09" \
+ FASTDFS_NGINX_MODULE_VERSION="1.23" \
+ NGINX_VERSION="1.22.0" \
+ TENGINE_VERSION="2.3.3"
+
+# 0.change the system source for installing libs
+RUN echo "http://mirrors.aliyun.com/alpine/v3.16/main" > /etc/apk/repositories \
+ && echo "http://mirrors.aliyun.com/alpine/v3.16/community" >> /etc/apk/repositories
+
+# 1.复制安装包
+ADD soft ${INSTALL_PATH}
+
+# 2.环境安装
+# - 创建fdfs的存储目录
+# - 安装依赖
+# - 安装libfastcommon
+# - 安装fastdfs
+# - 安装nginx,设置nginx和fastdfs联合环境
+#Run yum -y install -y gcc gcc-c++ libevent libevent-devel make automake autoconf libtool perl pcre pcre-devel zlib zlib-devel openssl openssl-devel zip unzip net-tools wget vim lsof \
+RUN apk update && apk add --no-cache --virtual .build-deps bash autoconf gcc libc-dev make pcre-dev zlib-dev linux-headers gnupg libxslt-dev gd-dev geoip-dev wget \
+ && cd ${INSTALL_PATH} \
+ && tar -zxf libfastcommon-${LIBFASTCOMMON_VERSION}.tar.gz \
+ && tar -zxf libserverframe-${LIBSERVERFRAME_VERSION}.tar.gz \
+ && tar -zxf fastdfs-${FASTDFS_VERSION}.tar.gz \
+ && tar -zxf fastdfs-nginx-module-${FASTDFS_NGINX_MODULE_VERSION}.tar.gz \
+ && tar -zxf nginx-${NGINX_VERSION}.tar.gz \
+ \
+ && cd ${INSTALL_PATH}/libfastcommon-${LIBFASTCOMMON_VERSION}/ \
+ && ./make.sh \
+ && ./make.sh install \
+ && cd ${INSTALL_PATH}/libserverframe-${LIBSERVERFRAME_VERSION}/ \
+ && ./make.sh \
+ && ./make.sh install \
+ && cd ${INSTALL_PATH}/fastdfs-${FASTDFS_VERSION}/ \
+ && ./make.sh \
+ && ./make.sh install \
+ \
+ && cd ${INSTALL_PATH}/nginx-${NGINX_VERSION}/ \
+ && ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-stream=dynamic \
+ --add-module=${INSTALL_PATH}/fastdfs-nginx-module-${FASTDFS_NGINX_MODULE_VERSION}/src/ \
+ && make \
+ && make install \
+ \
+ && rm -rf ${INSTALL_PATH}/* \
+ && apk del .build-deps gcc libc-dev make linux-headers gnupg libxslt-dev gd-dev geoip-dev wget
+
+# 3.添加配置文件,目标路径以/结尾,docker会把它当作目录,不存在时,会自动创建
+COPY conf/*.* /etc/fdfs/
+COPY nginx_conf/nginx.conf /usr/local/nginx/conf/
+COPY nginx_conf.d/*.conf /usr/local/nginx/conf.d/
+COPY start.sh /
+
+
+ENV TZ=Asia/Shanghai
+
+# 4.更改启动脚本执行权限,设置时区为中国时间
+RUN chmod u+x /start.sh \
+ && apk add --no-cache bash pcre-dev zlib-dev \
+ \
+ && apk add -U tzdata \
+ && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
+ && apk del tzdata && rm -rf /var/cache/apk/*
+
+EXPOSE 22122 23000 9088
+
+WORKDIR /
+
+# 镜像启动
+ENTRYPOINT ["/bin/bash","/start.sh"]
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/anti-steal.jpg b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/anti-steal.jpg
new file mode 100644
index 0000000..a52584b
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/anti-steal.jpg differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/client.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/client.conf
new file mode 100644
index 0000000..77d12f7
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/client.conf
@@ -0,0 +1,71 @@
+# connect timeout in seconds
+# default value is 30s
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds
+# default value is 30s
+network_timeout = 60
+
+# the base path to store log files
+base_path = /data/fastdfs_data
+
+# tracker_server can ocur more than once for multi tracker servers.
+# the value format of tracker_server is "HOST:PORT",
+# the HOST can be hostname or ip address,
+# and the HOST can be dual IPs or hostnames seperated by comma,
+# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
+# or two different types of inner (intranet) IPs.
+# for example: 192.168.2.100,122.244.141.46:22122
+# another eg.: 192.168.1.10,172.17.4.21:22122
+
+tracker_server = 192.168.0.196:22122
+tracker_server = 192.168.0.197:22122
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = false
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# if load FastDFS parameters from tracker server
+# since V4.05
+# default value is false
+load_fdfs_parameters_from_tracker = false
+
+# if use storage ID instead of IP address
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# default value is false
+# since V4.05
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V4.05
+storage_ids_filename = storage_ids.conf
+
+
+#HTTP settings
+http.tracker_server_port = 80
+
+#use "#include" directive to include HTTP other settiongs
+##include http.conf
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/http.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/http.conf
new file mode 100644
index 0000000..385bc45
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/http.conf
@@ -0,0 +1,29 @@
+# HTTP default content type
+http.default_content_type = application/octet-stream
+
+# MIME types mapping filename
+# MIME types file format: MIME_type extensions
+# such as: image/jpeg jpeg jpg jpe
+# you can use apache's MIME file: mime.types
+http.mime_types_filename = mime.types
+
+# if use token to anti-steal
+# default value is false (0)
+http.anti_steal.check_token = false
+
+# token TTL (time to live), seconds
+# default value is 600
+http.anti_steal.token_ttl = 900
+
+# secret key to generate anti-steal token
+# this parameter must be set when http.anti_steal.check_token set to true
+# the length of the secret key should not exceed 128 bytes
+http.anti_steal.secret_key = FastDFS1234567890
+
+# return the content of the file when check token fail
+# default value is empty (no file sepecified)
+http.anti_steal.token_check_fail = /home/yuqing/fastdfs/conf/anti-steal.jpg
+
+# if support multi regions for HTTP Range
+# default value is true
+http.multi_range.enabed = true
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/mime.types b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/mime.types
new file mode 100644
index 0000000..c83a690
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/mime.types
@@ -0,0 +1,1065 @@
+# This is a comment. I love comments.
+
+# This file controls what Internet media types are sent to the client for
+# given file extension(s). Sending the correct media type to the client
+# is important so they know how to handle the content of the file.
+# Extra types can either be added here or by using an AddType directive
+# in your config files. For more information about Internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type
+# registry is at .
+
+# MIME type Extensions
+application/activemessage
+application/andrew-inset ez
+application/applefile
+application/atom+xml atom
+application/atomcat+xml atomcat
+application/atomicmail
+application/atomsvc+xml atomsvc
+application/auth-policy+xml
+application/batch-smtp
+application/beep+xml
+application/cals-1840
+application/ccxml+xml ccxml
+application/cellml+xml
+application/cnrp+xml
+application/commonground
+application/conference-info+xml
+application/cpl+xml
+application/csta+xml
+application/cstadata+xml
+application/cybercash
+application/davmount+xml davmount
+application/dca-rft
+application/dec-dx
+application/dialog-info+xml
+application/dicom
+application/dns
+application/dvcs
+application/ecmascript ecma
+application/edi-consent
+application/edi-x12
+application/edifact
+application/epp+xml
+application/eshop
+application/fastinfoset
+application/fastsoap
+application/fits
+application/font-tdpfr pfr
+application/h224
+application/http
+application/hyperstudio stk
+application/iges
+application/im-iscomposing+xml
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/iotp
+application/ipp
+application/isup
+application/javascript js
+application/json json
+application/kpml-request+xml
+application/kpml-response+xml
+application/lost+xml lostxml
+application/mac-binhex40 hqx
+application/mac-compactpro cpt
+application/macwriteii
+application/marc mrc
+application/mathematica ma nb mb
+application/mathml+xml mathml
+application/mbms-associated-procedure-description+xml
+application/mbms-deregister+xml
+application/mbms-envelope+xml
+application/mbms-msk+xml
+application/mbms-msk-response+xml
+application/mbms-protection-description+xml
+application/mbms-reception-report+xml
+application/mbms-register+xml
+application/mbms-register-response+xml
+application/mbms-user-service-description+xml
+application/mbox mbox
+application/media_control+xml
+application/mediaservercontrol+xml mscml
+application/mikey
+application/moss-keys
+application/moss-signature
+application/mosskey-data
+application/mosskey-request
+application/mp4 mp4s
+application/mpeg4-generic
+application/mpeg4-iod
+application/mpeg4-iod-xmt
+application/msword doc dot
+application/mxf mxf
+application/nasdata
+application/news-transmission
+application/nss
+application/ocsp-request
+application/ocsp-response
+application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc
+application/oda oda
+application/oebps-package+xml
+application/ogg ogx
+application/parityfec
+application/patch-ops-error+xml xer
+application/pdf pdf
+application/pgp-encrypted pgp
+application/pgp-keys
+application/pgp-signature asc sig
+application/pics-rules prf
+application/pidf+xml
+application/pidf-diff+xml
+application/pkcs10 p10
+application/pkcs7-mime p7m p7c
+application/pkcs7-signature p7s
+application/pkix-cert cer
+application/pkix-crl crl
+application/pkix-pkipath pkipath
+application/pkixcmp pki
+application/pls+xml pls
+application/poc-settings+xml
+application/postscript ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww cww
+application/prs.nprend
+application/prs.plucker
+application/qsig
+application/rdf+xml rdf
+application/reginfo+xml rif
+application/relax-ng-compact-syntax rnc
+application/remote-printing
+application/resource-lists+xml rl
+application/resource-lists-diff+xml rld
+application/riscos
+application/rlmi+xml
+application/rls-services+xml rs
+application/rsd+xml rsd
+application/rss+xml rss
+application/rtf rtf
+application/rtx
+application/samlassertion+xml
+application/samlmetadata+xml
+application/sbml+xml sbml
+application/scvp-cv-request scq
+application/scvp-cv-response scs
+application/scvp-vp-request spq
+application/scvp-vp-response spp
+application/sdp sdp
+application/set-payment
+application/set-payment-initiation setpay
+application/set-registration
+application/set-registration-initiation setreg
+application/sgml
+application/sgml-open-catalog
+application/shf+xml shf
+application/sieve
+application/simple-filter+xml
+application/simple-message-summary
+application/simplesymbolcontainer
+application/slate
+application/smil
+application/smil+xml smi smil
+application/soap+fastinfoset
+application/soap+xml
+application/sparql-query rq
+application/sparql-results+xml srx
+application/spirits-event+xml
+application/srgs gram
+application/srgs+xml grxml
+application/ssml+xml ssml
+application/timestamp-query
+application/timestamp-reply
+application/tve-trigger
+application/ulpfec
+application/vemmi
+application/vividence.scriptfile
+application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.pic-bw-large plb
+application/vnd.3gpp.pic-bw-small psb
+application/vnd.3gpp.pic-bw-var pvb
+application/vnd.3gpp.sms
+application/vnd.3gpp2.bcmcsinfo+xml
+application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap tcap
+application/vnd.3m.post-it-notes pwn
+application/vnd.accpac.simply.aso aso
+application/vnd.accpac.simply.imp imp
+application/vnd.acucobol acu
+application/vnd.acucorp atc acutc
+application/vnd.adobe.xdp+xml xdp
+application/vnd.adobe.xfdf xfdf
+application/vnd.aether.imp
+application/vnd.americandynamics.acc acc
+application/vnd.amiga.ami ami
+application/vnd.anser-web-certificate-issue-initiation cii
+application/vnd.anser-web-funds-transfer-initiation fti
+application/vnd.antix.game-component atx
+application/vnd.apple.installer+xml mpkg
+application/vnd.arastra.swi swi
+application/vnd.audiograph aep
+application/vnd.autopackage
+application/vnd.avistar+xml
+application/vnd.blueice.multipass mpm
+application/vnd.bmi bmi
+application/vnd.businessobjects rep
+application/vnd.cab-jscript
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.cendio.thinlinc.clientconf
+application/vnd.chemdraw+xml cdxml
+application/vnd.chipnuts.karaoke-mmd mmd
+application/vnd.cinderella cdy
+application/vnd.cirpack.isdn-ext
+application/vnd.claymore cla
+application/vnd.clonk.c4group c4g c4d c4f c4p c4u
+application/vnd.commerce-battelle
+application/vnd.commonspace csp cst
+application/vnd.contact.cmsg cdbcmsg
+application/vnd.cosmocaller cmc
+application/vnd.crick.clicker clkx
+application/vnd.crick.clicker.keyboard clkk
+application/vnd.crick.clicker.palette clkp
+application/vnd.crick.clicker.template clkt
+application/vnd.crick.clicker.wordbank clkw
+application/vnd.criticaltools.wbs+xml wbs
+application/vnd.ctc-posml pml
+application/vnd.ctct.ws+xml
+application/vnd.cups-pdf
+application/vnd.cups-postscript
+application/vnd.cups-ppd ppd
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.curl curl
+application/vnd.cybank
+application/vnd.data-vision.rdz rdz
+application/vnd.denovo.fcselayout-link fe_launch
+application/vnd.dna dna
+application/vnd.dolby.mlp mlp
+application/vnd.dpgraph dpg
+application/vnd.dreamfactory dfac
+application/vnd.dvb.esgcontainer
+application/vnd.dvb.ipdcesgaccess
+application/vnd.dvb.iptv.alfec-base
+application/vnd.dvb.iptv.alfec-enhancement
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart mag
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven nml
+application/vnd.epson.esf esf
+application/vnd.epson.msf msf
+application/vnd.epson.quickanime qam
+application/vnd.epson.salt slt
+application/vnd.epson.ssf ssf
+application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml es3 et3
+application/vnd.eudora.data
+application/vnd.ezpix-album ez2
+application/vnd.ezpix-package ez3
+application/vnd.fdf fdf
+application/vnd.ffsns
+application/vnd.fints
+application/vnd.flographit gph
+application/vnd.fluxtime.clip ftc
+application/vnd.font-fontforge-sfd
+application/vnd.framemaker fm frame maker
+application/vnd.frogans.fnc fnc
+application/vnd.frogans.ltf ltf
+application/vnd.fsc.weblaunch fsc
+application/vnd.fujitsu.oasys oas
+application/vnd.fujitsu.oasys2 oa2
+application/vnd.fujitsu.oasys3 oa3
+application/vnd.fujitsu.oasysgp fg5
+application/vnd.fujitsu.oasysprs bh2
+application/vnd.fujixerox.art-ex
+application/vnd.fujixerox.art4
+application/vnd.fujixerox.hbpl
+application/vnd.fujixerox.ddd ddd
+application/vnd.fujixerox.docuworks xdw
+application/vnd.fujixerox.docuworks.binder xbd
+application/vnd.fut-misnet
+application/vnd.fuzzysheet fzs
+application/vnd.genomatix.tuxedo txd
+application/vnd.gmx gmx
+application/vnd.google-earth.kml+xml kml
+application/vnd.google-earth.kmz kmz
+application/vnd.grafeq gqf gqs
+application/vnd.gridmp
+application/vnd.groove-account gac
+application/vnd.groove-help ghf
+application/vnd.groove-identity-message gim
+application/vnd.groove-injector grv
+application/vnd.groove-tool-message gtm
+application/vnd.groove-tool-template tpl
+application/vnd.groove-vcard vcg
+application/vnd.handheld-entertainment+xml zmm
+application/vnd.hbci hbci
+application/vnd.hcl-bireports
+application/vnd.hhe.lesson-player les
+application/vnd.hp-hpgl hpgl
+application/vnd.hp-hpid hpid
+application/vnd.hp-hps hps
+application/vnd.hp-jlyt jlt
+application/vnd.hp-pcl pcl
+application/vnd.hp-pclxl pclxl
+application/vnd.httphone
+application/vnd.hydrostatix.sof-data sfd-hdstx
+application/vnd.hzn-3d-crossword x3d
+application/vnd.ibm.afplinedata
+application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay mpy
+application/vnd.ibm.modcap afp listafp list3820
+application/vnd.ibm.rights-management irm
+application/vnd.ibm.secure-container sc
+application/vnd.iccprofile icc icm
+application/vnd.igloader igl
+application/vnd.immervision-ivp ivp
+application/vnd.immervision-ivu ivu
+application/vnd.informedcontrol.rms+xml
+application/vnd.intercon.formnet xpw xpx
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo qbo
+application/vnd.intu.qfx qfx
+application/vnd.iptc.g2.conceptitem+xml
+application/vnd.iptc.g2.knowledgeitem+xml
+application/vnd.iptc.g2.newsitem+xml
+application/vnd.iptc.g2.packageitem+xml
+application/vnd.ipunplugged.rcprofile rcprofile
+application/vnd.irepository.package+xml irp
+application/vnd.is-xpr xpr
+application/vnd.jam jam
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms rms
+application/vnd.jisp jisp
+application/vnd.joost.joda-archive joda
+application/vnd.kahootz ktz ktr
+application/vnd.kde.karbon karbon
+application/vnd.kde.kchart chrt
+application/vnd.kde.kformula kfo
+application/vnd.kde.kivio flw
+application/vnd.kde.kontour kon
+application/vnd.kde.kpresenter kpr kpt
+application/vnd.kde.kspread ksp
+application/vnd.kde.kword kwd kwt
+application/vnd.kenameaapp htke
+application/vnd.kidspiration kia
+application/vnd.kinar kne knp
+application/vnd.koan skp skd skt skm
+application/vnd.kodak-descriptor sse
+application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop lbd
+application/vnd.llamagraphics.life-balance.exchange+xml lbe
+application/vnd.lotus-1-2-3 123
+application/vnd.lotus-approach apr
+application/vnd.lotus-freelance pre
+application/vnd.lotus-notes nsf
+application/vnd.lotus-organizer org
+application/vnd.lotus-screencam scm
+application/vnd.lotus-wordpro lwp
+application/vnd.macports.portpkg portpkg
+application/vnd.marlin.drm.actiontoken+xml
+application/vnd.marlin.drm.conftoken+xml
+application/vnd.marlin.drm.license+xml
+application/vnd.marlin.drm.mdcf
+application/vnd.mcd mcd
+application/vnd.medcalcdata mc1
+application/vnd.mediastation.cdkey cdkey
+application/vnd.meridian-slingshot
+application/vnd.mfer mwf
+application/vnd.mfmp mfm
+application/vnd.micrografx.flo flo
+application/vnd.micrografx.igx igx
+application/vnd.mif mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf daf
+application/vnd.mobius.dis dis
+application/vnd.mobius.mbk mbk
+application/vnd.mobius.mqy mqy
+application/vnd.mobius.msl msl
+application/vnd.mobius.plc plc
+application/vnd.mobius.txf txf
+application/vnd.mophun.application mpn
+application/vnd.mophun.certificate mpc
+application/vnd.motorola.flexsuite
+application/vnd.motorola.flexsuite.adsi
+application/vnd.motorola.flexsuite.fis
+application/vnd.motorola.flexsuite.gotap
+application/vnd.motorola.flexsuite.kmr
+application/vnd.motorola.flexsuite.ttc
+application/vnd.motorola.flexsuite.wem
+application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml xul
+application/vnd.ms-artgalry cil
+application/vnd.ms-asf asf
+application/vnd.ms-cab-compressed cab
+application/vnd.ms-excel xls xlm xla xlc xlt xlw
+application/vnd.ms-fontobject eot
+application/vnd.ms-htmlhelp chm
+application/vnd.ms-ims ims
+application/vnd.ms-lrm lrm
+application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.ms-project mpp mpt
+application/vnd.ms-tnef
+application/vnd.ms-wmdrm.lic-chlg-req
+application/vnd.ms-wmdrm.lic-resp
+application/vnd.ms-wmdrm.meter-chlg-req
+application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-works wps wks wcm wdb
+application/vnd.ms-wpl wpl
+application/vnd.ms-xpsdocument xps
+application/vnd.mseq mseq
+application/vnd.msign
+application/vnd.multiad.creator
+application/vnd.multiad.creator.cif
+application/vnd.music-niff
+application/vnd.musician mus
+application/vnd.muvee.style msty
+application/vnd.ncd.control
+application/vnd.ncd.reference
+application/vnd.nervana
+application/vnd.netfpx
+application/vnd.neurolanguage.nlu nlu
+application/vnd.noblenet-directory nnd
+application/vnd.noblenet-sealer nns
+application/vnd.noblenet-web nnw
+application/vnd.nokia.catalogs
+application/vnd.nokia.conml+wbxml
+application/vnd.nokia.conml+xml
+application/vnd.nokia.isds-radio-presets
+application/vnd.nokia.iptv.config+xml
+application/vnd.nokia.landmark+wbxml
+application/vnd.nokia.landmark+xml
+application/vnd.nokia.landmarkcollection+xml
+application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data ngdat
+application/vnd.nokia.n-gage.symbian.install n-gage
+application/vnd.nokia.ncd
+application/vnd.nokia.pcd+wbxml
+application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset rpst
+application/vnd.nokia.radio-presets rpss
+application/vnd.novadigm.edm edm
+application/vnd.novadigm.edx edx
+application/vnd.novadigm.ext ext
+application/vnd.oasis.opendocument.chart odc
+application/vnd.oasis.opendocument.chart-template otc
+application/vnd.oasis.opendocument.formula odf
+application/vnd.oasis.opendocument.formula-template otf
+application/vnd.oasis.opendocument.graphics odg
+application/vnd.oasis.opendocument.graphics-template otg
+application/vnd.oasis.opendocument.image odi
+application/vnd.oasis.opendocument.image-template oti
+application/vnd.oasis.opendocument.presentation odp
+application/vnd.oasis.opendocument.presentation-template otp
+application/vnd.oasis.opendocument.spreadsheet ods
+application/vnd.oasis.opendocument.spreadsheet-template ots
+application/vnd.oasis.opendocument.text odt
+application/vnd.oasis.opendocument.text-master otm
+application/vnd.oasis.opendocument.text-template ott
+application/vnd.oasis.opendocument.text-web oth
+application/vnd.obn
+application/vnd.olpc-sugar xo
+application/vnd.oma-scws-config
+application/vnd.oma-scws-http-request
+application/vnd.oma-scws-http-response
+application/vnd.oma.bcast.associated-procedure-parameter+xml
+application/vnd.oma.bcast.drm-trigger+xml
+application/vnd.oma.bcast.imd+xml
+application/vnd.oma.bcast.ltkm
+application/vnd.oma.bcast.notification+xml
+application/vnd.oma.bcast.provisioningtrigger
+application/vnd.oma.bcast.sgboot
+application/vnd.oma.bcast.sgdd+xml
+application/vnd.oma.bcast.sgdu
+application/vnd.oma.bcast.simple-symbol-container
+application/vnd.oma.bcast.smartcard-trigger+xml
+application/vnd.oma.bcast.sprov+xml
+application/vnd.oma.bcast.stkm
+application/vnd.oma.dcd
+application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml dd2
+application/vnd.oma.drm.risd+xml
+application/vnd.oma.group-usage-list+xml
+application/vnd.oma.poc.detailed-progress-report+xml
+application/vnd.oma.poc.final-report+xml
+application/vnd.oma.poc.groups+xml
+application/vnd.oma.poc.invocation-descriptor+xml
+application/vnd.oma.poc.optimized-progress-report+xml
+application/vnd.oma.xcap-directory+xml
+application/vnd.omads-email+xml
+application/vnd.omads-file+xml
+application/vnd.omads-folder+xml
+application/vnd.omaloc-supl-init
+application/vnd.openofficeorg.extension oxt
+application/vnd.osa.netdeploy
+application/vnd.osgi.dp dp
+application/vnd.otps.ct-kip+xml
+application/vnd.palm prc pdb pqa oprc
+application/vnd.paos.xml
+application/vnd.pg.format str
+application/vnd.pg.osasli ei6
+application/vnd.piaccess.application-licence
+application/vnd.picsel efif
+application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn plf
+application/vnd.powerbuilder6 pbd
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.preminet
+application/vnd.previewsystems.box box
+application/vnd.proteus.magazine mgz
+application/vnd.publishare-delta-tree qps
+application/vnd.pvi.ptid1 ptid
+application/vnd.pwg-multiplexed
+application/vnd.pwg-xhtml-print+xml
+application/vnd.qualcomm.brew-app-res
+application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
+application/vnd.rapid
+application/vnd.recordare.musicxml mxl
+application/vnd.recordare.musicxml+xml
+application/vnd.renlearn.rlprint
+application/vnd.rn-realmedia rm
+application/vnd.route66.link66+xml link66
+application/vnd.ruckus.download
+application/vnd.s3sms
+application/vnd.sbm.mid2
+application/vnd.scribus
+application/vnd.sealed.3df
+application/vnd.sealed.csf
+application/vnd.sealed.doc
+application/vnd.sealed.eml
+application/vnd.sealed.mht
+application/vnd.sealed.net
+application/vnd.sealed.ppt
+application/vnd.sealed.tiff
+application/vnd.sealed.xls
+application/vnd.sealedmedia.softseal.html
+application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail see
+application/vnd.sema sema
+application/vnd.semd semd
+application/vnd.semf semf
+application/vnd.shana.informed.formdata ifm
+application/vnd.shana.informed.formtemplate itp
+application/vnd.shana.informed.interchange iif
+application/vnd.shana.informed.package ipk
+application/vnd.simtech-mindmapper twd twds
+application/vnd.smaf mmf
+application/vnd.software602.filler.form+xml
+application/vnd.software602.filler.form-xml-zip
+application/vnd.solent.sdkm+xml sdkm sdkd
+application/vnd.spotfire.dxp dxp
+application/vnd.spotfire.sfs sfs
+application/vnd.sss-cod
+application/vnd.sss-dtf
+application/vnd.sss-ntf
+application/vnd.street-stream
+application/vnd.sun.wadl+xml
+application/vnd.sus-calendar sus susp
+application/vnd.svd svd
+application/vnd.swiftview-ics
+application/vnd.syncml+xml xsm
+application/vnd.syncml.dm+wbxml bdm
+application/vnd.syncml.dm+xml xdm
+application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive tao
+application/vnd.tmobile-livetv tmo
+application/vnd.trid.tpt tpt
+application/vnd.triscape.mxs mxs
+application/vnd.trueapp tra
+application/vnd.truedoc
+application/vnd.ufdl ufd ufdl
+application/vnd.uiq.theme utz
+application/vnd.umajin umj
+application/vnd.unity unityweb
+application/vnd.uoml+xml uoml
+application/vnd.uplanet.alert
+application/vnd.uplanet.alert-wbxml
+application/vnd.uplanet.bearer-choice
+application/vnd.uplanet.bearer-choice-wbxml
+application/vnd.uplanet.cacheop
+application/vnd.uplanet.cacheop-wbxml
+application/vnd.uplanet.channel
+application/vnd.uplanet.channel-wbxml
+application/vnd.uplanet.list
+application/vnd.uplanet.list-wbxml
+application/vnd.uplanet.listcmd
+application/vnd.uplanet.listcmd-wbxml
+application/vnd.uplanet.signal
+application/vnd.vcx vcx
+application/vnd.vd-study
+application/vnd.vectorworks
+application/vnd.vidsoft.vidconference
+application/vnd.visio vsd vst vss vsw
+application/vnd.visionary vis
+application/vnd.vividence.scriptfile
+application/vnd.vsf vsf
+application/vnd.wap.sic
+application/vnd.wap.slc
+application/vnd.wap.wbxml wbxml
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/vnd.webturbo wtb
+application/vnd.wfa.wsc
+application/vnd.wmc
+application/vnd.wmf.bootstrap
+application/vnd.wordperfect wpd
+application/vnd.wqd wqd
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf stf
+application/vnd.wv.csp+wbxml
+application/vnd.wv.csp+xml
+application/vnd.wv.ssp+xml
+application/vnd.xara xar
+application/vnd.xfdl xfdl
+application/vnd.xmi+xml
+application/vnd.xmpie.cpkg
+application/vnd.xmpie.dpkg
+application/vnd.xmpie.plan
+application/vnd.xmpie.ppkg
+application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic hvd
+application/vnd.yamaha.hv-script hvs
+application/vnd.yamaha.hv-voice hvp
+application/vnd.yamaha.smaf-audio saf
+application/vnd.yamaha.smaf-phrase spf
+application/vnd.yellowriver-custom-menu cmp
+application/vnd.zzazz.deck+xml zaz
+application/voicexml+xml vxml
+application/watcherinfo+xml
+application/whoispp-query
+application/whoispp-response
+application/winhlp hlp
+application/wita
+application/wordperfect5.1
+application/wsdl+xml wsdl
+application/wspolicy+xml wspolicy
+application/x-ace-compressed ace
+application/x-bcpio bcpio
+application/x-bittorrent torrent
+application/x-bzip bz
+application/x-bzip2 bz2 boz
+application/x-cdlink vcd
+application/x-chat chat
+application/x-chess-pgn pgn
+application/x-compress
+application/x-cpio cpio
+application/x-csh csh
+application/x-director dcr dir dxr fgd
+application/x-dvi dvi
+application/x-futuresplash spl
+application/x-gtar gtar
+application/x-gzip
+application/x-hdf hdf
+application/x-latex latex
+application/x-ms-wmd wmd
+application/x-ms-wmz wmz
+application/x-msaccess mdb
+application/x-msbinder obd
+application/x-mscardfile crd
+application/x-msclip clp
+application/x-msdownload exe dll com bat msi
+application/x-msmediaview mvb m13 m14
+application/x-msmetafile wmf
+application/x-msmoney mny
+application/x-mspublisher pub
+application/x-msschedule scd
+application/x-msterminal trm
+application/x-mswrite wri
+application/x-netcdf nc cdf
+application/x-pkcs12 p12 pfx
+application/x-pkcs7-certificates p7b spc
+application/x-pkcs7-certreqresp p7r
+application/x-rar-compressed rar
+application/x-sh sh
+application/x-shar shar
+application/x-shockwave-flash swf
+application/x-stuffit sit
+application/x-stuffitx sitx
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-tar tar
+application/x-tcl tcl
+application/x-tex tex
+application/x-texinfo texinfo texi
+application/x-ustar ustar
+application/x-wais-source src
+application/x-x509-ca-cert der crt
+application/x400-bp
+application/xcap-att+xml
+application/xcap-caps+xml
+application/xcap-el+xml
+application/xcap-error+xml
+application/xcap-ns+xml
+application/xenc+xml xenc
+application/xhtml+xml xhtml xht
+application/xml xml xsl
+application/xml-dtd dtd
+application/xml-external-parsed-entity
+application/xmpp+xml
+application/xop+xml xop
+application/xslt+xml xslt
+application/xspf+xml xspf
+application/xv+xml mxml xhvml xvml xvm
+application/zip zip
+audio/32kadpcm
+audio/3gpp
+audio/3gpp2
+audio/ac3
+audio/amr
+audio/amr-wb
+audio/amr-wb+
+audio/asc
+audio/basic au snd
+audio/bv16
+audio/bv32
+audio/clearmode
+audio/cn
+audio/dat12
+audio/dls
+audio/dsr-es201108
+audio/dsr-es202050
+audio/dsr-es202211
+audio/dsr-es202212
+audio/dvi4
+audio/eac3
+audio/evrc
+audio/evrc-qcp
+audio/evrc0
+audio/evrc1
+audio/evrcb
+audio/evrcb0
+audio/evrcb1
+audio/evrcwb
+audio/evrcwb0
+audio/evrcwb1
+audio/g722
+audio/g7221
+audio/g723
+audio/g726-16
+audio/g726-24
+audio/g726-32
+audio/g726-40
+audio/g728
+audio/g729
+audio/g7291
+audio/g729d
+audio/g729e
+audio/gsm
+audio/gsm-efr
+audio/ilbc
+audio/l16
+audio/l20
+audio/l24
+audio/l8
+audio/lpc
+audio/midi mid midi kar rmi
+audio/mobile-xmf
+audio/mp4 mp4a
+audio/mp4a-latm
+audio/mpa
+audio/mpa-robust
+audio/mpeg mpga mp2 mp2a mp3 m2a m3a
+audio/mpeg4-generic
+audio/ogg oga ogg spx
+audio/parityfec
+audio/pcma
+audio/pcmu
+audio/prs.sid
+audio/qcelp
+audio/red
+audio/rtp-enc-aescm128
+audio/rtp-midi
+audio/rtx
+audio/smv
+audio/smv0
+audio/smv-qcp
+audio/sp-midi
+audio/t140c
+audio/t38
+audio/telephone-event
+audio/tone
+audio/ulpfec
+audio/vdvi
+audio/vmr-wb
+audio/vnd.3gpp.iufp
+audio/vnd.4sb
+audio/vnd.audiokoz
+audio/vnd.celp
+audio/vnd.cisco.nse
+audio/vnd.cmles.radio-events
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.digital-winds eol
+audio/vnd.dlna.adts
+audio/vnd.dolby.mlp
+audio/vnd.dts dts
+audio/vnd.dts.hd dtshd
+audio/vnd.everad.plj
+audio/vnd.hns.audio
+audio/vnd.lucent.voice lvp
+audio/vnd.ms-playready.media.pya pya
+audio/vnd.nokia.mobile-xmf
+audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800 ecelp4800
+audio/vnd.nuera.ecelp7470 ecelp7470
+audio/vnd.nuera.ecelp9600 ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.qcelp
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.sealedmedia.softseal.mpeg
+audio/vnd.vmx.cvsd
+audio/vorbis
+audio/vorbis-config
+audio/wav wav
+audio/x-aiff aif aiff aifc
+audio/x-mpegurl m3u
+audio/x-ms-wax wax
+audio/x-ms-wma wma
+audio/x-pn-realaudio ram ra
+audio/x-pn-realaudio-plugin rmp
+audio/x-wav wav
+chemical/x-cdx cdx
+chemical/x-cif cif
+chemical/x-cmdf cmdf
+chemical/x-cml cml
+chemical/x-csml csml
+chemical/x-pdb pdb
+chemical/x-xyz xyz
+image/bmp bmp
+image/cgm cgm
+image/fits
+image/g3fax g3
+image/gif gif
+image/ief ief
+image/jp2
+image/jpeg jpeg jpg jpe
+image/jpm
+image/jpx
+image/naplps
+image/png png
+image/prs.btif btif
+image/prs.pti
+image/svg+xml svg svgz
+image/t38
+image/tiff tiff tif
+image/tiff-fx
+image/vnd.adobe.photoshop psd
+image/vnd.cns.inf2
+image/vnd.djvu djvu djv
+image/vnd.dwg dwg
+image/vnd.dxf dxf
+image/vnd.fastbidsheet fbs
+image/vnd.fpx fpx
+image/vnd.fst fst
+image/vnd.fujixerox.edmics-mmr mmr
+image/vnd.fujixerox.edmics-rlc rlc
+image/vnd.globalgraphics.pgb
+image/vnd.microsoft.icon
+image/vnd.mix
+image/vnd.ms-modi mdi
+image/vnd.net-fpx npx
+image/vnd.sealed.png
+image/vnd.sealedmedia.softseal.gif
+image/vnd.sealedmedia.softseal.jpg
+image/vnd.svf
+image/vnd.wap.wbmp wbmp
+image/vnd.xiff xif
+image/x-cmu-raster ras
+image/x-cmx cmx
+image/x-icon ico
+image/x-pcx pcx
+image/x-pict pic pct
+image/x-portable-anymap pnm
+image/x-portable-bitmap pbm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-rgb rgb
+image/x-xbitmap xbm
+image/x-xpixmap xpm
+image/x-xwindowdump xwd
+message/cpim
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/global
+message/global-delivery-status
+message/global-disposition-notification
+message/global-headers
+message/http
+message/news
+message/partial
+message/rfc822 eml mime
+message/s-http
+message/sip
+message/sipfrag
+message/tracking-status
+message/vnd.si.simp
+model/iges igs iges
+model/mesh msh mesh silo
+model/vnd.dwf dwf
+model/vnd.flatland.3dml
+model/vnd.gdl gdl
+model/vnd.gs.gdl
+model/vnd.gtw gtw
+model/vnd.moml+xml
+model/vnd.mts mts
+model/vnd.parasolid.transmit.binary
+model/vnd.parasolid.transmit.text
+model/vnd.vtu vtu
+model/vrml wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/calendar ics ifb
+text/css css
+text/csv csv
+text/directory
+text/dns
+text/enriched
+text/html html htm
+text/parityfec
+text/plain txt text conf def list log in
+text/prs.fallenstein.rst
+text/prs.lines.tag dsc
+text/red
+text/rfc822-headers
+text/richtext rtx
+text/rtf
+text/rtp-enc-aescm128
+text/rtx
+text/sgml sgml sgm
+text/t140
+text/tab-separated-values tsv
+text/troff t tr roff man me ms
+text/ulpfec
+text/uri-list uri uris urls
+text/vnd.abc
+text/vnd.curl
+text/vnd.dmclientscript
+text/vnd.esmertec.theme-descriptor
+text/vnd.fly fly
+text/vnd.fmi.flexstor flx
+text/vnd.graphviz gv
+text/vnd.in3d.3dml 3dml
+text/vnd.in3d.spot spot
+text/vnd.iptc.newsml
+text/vnd.iptc.nitf
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage
+text/vnd.net2phone.commcenter.command
+text/vnd.si.uricatalogue
+text/vnd.sun.j2me.app-descriptor jad
+text/vnd.trolltech.linguist
+text/vnd.wap.si
+text/vnd.wap.sl
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/x-asm s asm
+text/x-c c cc cxx cpp h hh dic
+text/x-fortran f for f77 f90
+text/x-pascal p pas
+text/x-java-source java
+text/x-setext etx
+text/x-uuencode uu
+text/x-vcalendar vcs
+text/x-vcard vcf
+text/xml
+text/xml-external-parsed-entity
+video/3gpp 3gp
+video/3gpp-tt
+video/3gpp2 3g2
+video/bmpeg
+video/bt656
+video/celb
+video/dv
+video/h261 h261
+video/h263 h263
+video/h263-1998
+video/h263-2000
+video/h264 h264
+video/jpeg jpgv
+video/jpeg2000
+video/jpm jpm jpgm
+video/mj2 mj2 mjp2
+video/mp1s
+video/mp2p
+video/mp2t
+video/mp4 mp4 mp4v mpg4
+video/mp4v-es
+video/mpeg mpeg mpg mpe m1v m2v
+video/mpeg4-generic
+video/mpv
+video/nv
+video/ogg ogv
+video/parityfec
+video/pointer
+video/quicktime qt mov
+video/raw
+video/rtp-enc-aescm128
+video/rtx
+video/smpte292m
+video/ulpfec
+video/vc1
+video/vnd.cctv
+video/vnd.dlna.mpeg-tts
+video/vnd.fvt fvt
+video/vnd.hns.video
+video/vnd.iptvforum.1dparityfec-1010
+video/vnd.iptvforum.1dparityfec-2005
+video/vnd.iptvforum.2dparityfec-1010
+video/vnd.iptvforum.2dparityfec-2005
+video/vnd.iptvforum.ttsavc
+video/vnd.iptvforum.ttsmpeg2
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl mxu m4u
+video/vnd.ms-playready.media.pyv pyv
+video/vnd.nokia.interleaved-multimedia
+video/vnd.nokia.videovoip
+video/vnd.objectvideo
+video/vnd.sealed.mpeg1
+video/vnd.sealed.mpeg4
+video/vnd.sealed.swf
+video/vnd.sealedmedia.softseal.mov
+video/vnd.vivo viv
+video/x-fli fli
+video/x-ms-asf asf asx
+video/x-ms-wm wm
+video/x-ms-wmv wmv
+video/x-ms-wmx wmx
+video/x-ms-wvx wvx
+video/x-msvideo avi
+video/x-sgi-movie movie
+x-conference/x-cooltalk ice
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/mod_fastdfs.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/mod_fastdfs.conf
new file mode 100644
index 0000000..1fbebcf
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/mod_fastdfs.conf
@@ -0,0 +1,137 @@
+# connect timeout in seconds
+# default value is 30s
+connect_timeout=15
+
+# network recv and send timeout in seconds
+# default value is 30s
+network_timeout=30
+
+# the base path to store log files
+base_path=/data/fastdfs_data
+
+# if load FastDFS parameters from tracker server
+# since V1.12
+# default value is false
+load_fdfs_parameters_from_tracker=true
+
+# storage sync file max delay seconds
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V1.12
+# default value is 86400 seconds (one day)
+storage_sync_file_max_delay = 86400
+
+# if use storage ID instead of IP address
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# default value is false
+# since V1.13
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V1.13
+storage_ids_filename = storage_ids.conf
+
+# FastDFS tracker_server can ocur more than once, and tracker_server format is
+# "host:port", host can be hostname or ip address
+# valid only when load_fdfs_parameters_from_tracker is true
+tracker_server = 192.168.209.121:22122
+tracker_server = 192.168.209.122:22122
+
+# the port of the local storage server
+# the default value is 23000
+storage_server_port=23000
+
+# the group name of the local storage server
+group_name=group1
+
+# if the url / uri including the group name
+# set to false when uri like /M00/00/00/xxx
+# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
+# default value is false
+url_have_group_name = true
+
+# path(disk or mount point) count, default value is 1
+# must same as storage.conf
+store_path_count=1
+
+# store_path#, based 0, if store_path0 not exists, it's value is base_path
+# the paths must be exist
+# must same as storage.conf
+store_path0=/data/fastdfs/upload/path0
+#store_path1=/home/yuqing/fastdfs1
+
+# standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level=info
+
+# set the log filename, such as /usr/local/apache2/logs/mod_fastdfs.log
+# empty for output to stderr (apache and nginx error_log file)
+log_filename=
+
+# response mode when the file not exist in the local file system
+## proxy: get the content from other storage server, then send to client
+## redirect: redirect to the original storage server (HTTP Header is Location)
+response_mode=proxy
+
+# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
+# multi aliases split by comma. empty value means auto set by OS type
+# this paramter used to get all ip address of the local host
+# default values is empty
+if_alias_prefix=
+
+# use "#include" directive to include HTTP config file
+# NOTE: #include is an include directive, do NOT remove the # before include
+#include http.conf
+
+
+# if support flv
+# default value is false
+# since v1.15
+flv_support = true
+
+# flv file extension name
+# default value is flv
+# since v1.15
+flv_extension = flv
+
+
+## 如果在此存储服务器上支持多组时,有几组就设置几组。单组为0.
+## 一台服务器没有必要运行多个group的storage,因为stroage本身支持多存储目录的
+# set the group count
+# set to none zero to support multi-group on this storage server
+# set to 0 for single group only
+# groups settings section as [group1], [group2], ..., [groupN]
+# default value is 0
+# since v1.14
+group_count = 0
+
+## 如果在此存储服务器上支持多组时,有几组就设置几组
+# group settings for group #1
+# since v1.14
+# when support multi-group on this storage server, uncomment following section
+#[group1]
+#group_name=group1
+#storage_server_port=23000
+#store_path_count=2
+#store_path0=/home/yuqing/fastdfs
+#store_path1=/home/yuqing/fastdfs1
+
+# group settings for group #2
+# since v1.14
+# when support multi-group, uncomment following section as neccessary
+#[group2]
+#group_name=group2
+#storage_server_port=23000
+#store_path_count=1
+#store_path0=/home/yuqing/fastdfs
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/storage.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/storage.conf
new file mode 100644
index 0000000..555054d
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/storage.conf
@@ -0,0 +1,353 @@
+# is this config file disabled
+# false for enabled
+# true for disabled
+disabled = false
+
+# the name of the group this storage server belongs to
+#
+# comment or remove this item for fetching from tracker server,
+# in this case, use_storage_id must set to true in tracker.conf,
+# and storage_ids.conf must be configured correctly.
+group_name = group1
+
+# bind an address of this host
+# empty for bind all addresses of this host
+bind_addr =
+
+# if bind an address of this host when connect to other servers
+# (this storage server as a client)
+# true for binding the address configured by the above parameter: "bind_addr"
+# false for binding any address of this host
+client_bind = true
+
+# the storage server port
+port = 23000
+
+# connect timeout in seconds
+# default value is 30
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds for send and recv
+# default value is 30
+network_timeout = 60
+
+# the heart beat interval in seconds
+# the storage server send heartbeat to tracker server periodically
+# default value is 30
+heart_beat_interval = 30
+
+# disk usage report interval in seconds
+# the storage server send disk usage report to tracker server periodically
+# default value is 300
+stat_report_interval = 60
+
+# the base path to store data and log files
+# NOTE: the binlog files maybe are large, make sure
+# the base path has enough disk space,
+# eg. the disk free space should > 50GB
+base_path = /data/fastdfs_data
+
+# max concurrent connections the server supported,
+# you should set this parameter larger, eg. 10240
+# default value is 256
+max_connections = 1024
+
+# the buff size to recv / send data from/to network
+# this parameter must more than 8KB
+# 256KB or 512KB is recommended
+# default value is 64KB
+# since V2.00
+buff_size = 256KB
+
+# accept thread count
+# default value is 1 which is recommended
+# since V4.07
+accept_threads = 1
+
+# work thread count
+# work threads to deal network io
+# default value is 4
+# since V2.00
+work_threads = 4
+
+# if disk read / write separated
+## false for mixed read and write
+## true for separated read and write
+# default value is true
+# since V2.00
+disk_rw_separated = true
+
+# disk reader thread count per store path
+# for mixed read / write, this parameter can be 0
+# default value is 1
+# since V2.00
+disk_reader_threads = 1
+
+# disk writer thread count per store path
+# for mixed read / write, this parameter can be 0
+# default value is 1
+# since V2.00
+disk_writer_threads = 1
+
+# when no entry to sync, try read binlog again after X milliseconds
+# must > 0, default value is 200ms
+sync_wait_msec = 50
+
+# after sync a file, usleep milliseconds
+# 0 for sync successively (never call usleep)
+sync_interval = 0
+
+# storage sync start time of a day, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+sync_start_time = 00:00
+
+# storage sync end time of a day, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+sync_end_time = 23:59
+
+# write to the mark file after sync N files
+# default value is 500
+write_mark_file_freq = 500
+
+# disk recovery thread count
+# default value is 1
+# since V6.04
+disk_recovery_threads = 3
+
+# store path (disk or mount point) count, default value is 1
+store_path_count = 1
+
+# store_path#, based on 0, to configure the store paths to store files
+# if store_path0 not exists, it's value is base_path (NOT recommended)
+# the paths must be exist.
+#
+# IMPORTANT NOTE:
+# the store paths' order is very important, don't mess up!!!
+# the base_path should be independent (different) of the store paths
+
+store_path0 = /data/fastdfs/upload/path0
+#store_path1 = /home/yuqing/fastdfs2
+
+# subdir_count * subdir_count directories will be auto created under each
+# store_path (disk), value can be 1 to 256, default value is 256
+subdir_count_per_path = 256
+
+# tracker_server can ocur more than once for multi tracker servers.
+# the value format of tracker_server is "HOST:PORT",
+# the HOST can be hostname or ip address,
+# and the HOST can be dual IPs or hostnames seperated by comma,
+# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
+# or two different types of inner (intranet) IPs.
+# for example: 192.168.2.100,122.244.141.46:22122
+# another eg.: 192.168.1.10,172.17.4.21:22122
+
+tracker_server = 192.168.209.121:22122
+tracker_server = 192.168.209.122:22122
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+#unix group name to run this program,
+#not set (empty) means run by the group of current user
+run_by_group =
+
+#unix username to run this program,
+#not set (empty) means run by current user
+run_by_user =
+
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" (only one asterisk) means match all ip addresses
+# we can use CIDR ips like 192.168.5.64/26
+# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
+# for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+# allow_hosts=192.168.5.64/26
+allow_hosts = *
+
+# the mode of the files distributed to the data path
+# 0: round robin(default)
+# 1: random, distributted by hash code
+file_distribute_path_mode = 0
+
+# valid when file_distribute_to_path is set to 0 (round robin).
+# when the written file count reaches this number, then rotate to next path.
+# rotate to the first path (00/00) after the last path (such as FF/FF).
+# default value is 100
+file_distribute_rotate_count = 100
+
+# call fsync to disk when write big file
+# 0: never call fsync
+# other: call fsync when written bytes >= this bytes
+# default value is 0 (never call fsync)
+fsync_after_written_bytes = 0
+
+# sync log buff to disk every interval seconds
+# must > 0, default value is 10 seconds
+sync_log_buff_interval = 1
+
+# sync binlog buff / cache to disk every interval seconds
+# default value is 60 seconds
+sync_binlog_buff_interval = 1
+
+# sync storage stat info to disk every interval seconds
+# default value is 300 seconds
+sync_stat_file_interval = 300
+
+# thread stack size, should >= 512KB
+# default value is 512KB
+thread_stack_size = 512KB
+
+# the priority as a source server for uploading file.
+# the lower this value, the higher its uploading priority.
+# default value is 10
+upload_priority = 10
+
+# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
+# multi aliases split by comma. empty value means auto set by OS type
+# default values is empty
+if_alias_prefix =
+
+# if check file duplicate, when set to true, use FastDHT to store file indexes
+# 1 or yes: need check
+# 0 or no: do not check
+# default value is 0
+check_file_duplicate = 0
+
+# file signature method for check file duplicate
+## hash: four 32 bits hash code
+## md5: MD5 signature
+# default value is hash
+# since V4.01
+file_signature_method = hash
+
+# namespace for storing file indexes (key-value pairs)
+# this item must be set when check_file_duplicate is true / on
+key_namespace = FastDFS
+
+# set keep_alive to 1 to enable persistent connection with FastDHT servers
+# default value is 0 (short connection)
+keep_alive = 0
+
+# you can use "#include filename" (not include double quotes) directive to
+# load FastDHT server list, when the filename is a relative path such as
+# pure filename, the base path is the base path of current/this config file.
+# must set FastDHT server list when check_file_duplicate is true / on
+# please see INSTALL of FastDHT for detail
+##include /home/yuqing/fastdht/conf/fdht_servers.conf
+
+# if log to access log
+# default value is false
+# since V4.00
+use_access_log = false
+
+# if rotate the access log every day
+# default value is false
+# since V4.00
+rotate_access_log = false
+
+# rotate access log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.00
+access_log_rotate_time = 00:00
+
+# if compress the old access log by gzip
+# default value is false
+# since V6.04
+compress_old_access_log = false
+
+# compress the access log days before
+# default value is 1
+# since V6.04
+compress_access_log_days_before = 7
+
+# if rotate the error log every day
+# default value is false
+# since V4.02
+rotate_error_log = false
+
+# rotate error log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.02
+error_log_rotate_time = 00:00
+
+# if compress the old error log by gzip
+# default value is false
+# since V6.04
+compress_old_error_log = false
+
+# compress the error log days before
+# default value is 1
+# since V6.04
+compress_error_log_days_before = 7
+
+# rotate access log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_access_log_size = 0
+
+# rotate error log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_error_log_size = 0
+
+# keep days of the log files
+# 0 means do not delete old log files
+# default value is 0
+log_file_keep_days = 0
+
+# if skip the invalid record when sync file
+# default value is false
+# since V4.02
+file_sync_skip_invalid_record = false
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = true
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# if compress the binlog files by gzip
+# default value is false
+# since V6.01
+compress_binlog = true
+
+# try to compress binlog time, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 01:30
+# since V6.01
+compress_binlog_time = 01:30
+
+# if check the mark of store path to prevent confusion
+# recommend to set this parameter to true
+# if two storage servers (instances) MUST use a same store path for
+# some specific purposes, you should set this parameter to false
+# default value is true
+# since V6.03
+check_store_path_mark = true
+
+# use the ip address of this storage server if domain_name is empty,
+# else this domain name will ocur in the url redirected by the tracker server
+http.domain_name =
+
+# the port of the web server on this storage server
+http.server_port = 8888
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/storage_ids.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/storage_ids.conf
new file mode 100644
index 0000000..adc3019
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/storage_ids.conf
@@ -0,0 +1,16 @@
+#
+#
+# id is a natural number (1, 2, 3 etc.),
+# 6 bits of the id length is enough, such as 100001
+#
+# storage ip or hostname can be dual IPs seperated by comma,
+# one is an inner (intranet) IP and another is an outer (extranet) IP,
+# or two different types of inner (intranet) IPs
+# for example: 192.168.2.100,122.244.141.46
+# another eg.: 192.168.1.10,172.17.4.21
+#
+# the port is optional. if you run more than one storaged instances
+# in a server, you must specified the port to distinguish different instances.
+
+#100001 group1 192.168.0.196
+#100002 group1 192.168.0.197
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/tracker.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/tracker.conf
new file mode 100644
index 0000000..4ef8a55
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/conf/tracker.conf
@@ -0,0 +1,329 @@
+# is this config file disabled
+# false for enabled
+# true for disabled
+disabled = false
+
+# bind an address of this host
+# empty for bind all addresses of this host
+bind_addr =
+
+# the tracker server port
+port = 22122
+
+# connect timeout in seconds
+# default value is 30
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds for send and recv
+# default value is 30
+network_timeout = 60
+
+# the base path to store data and log files
+base_path = /data/fastdfs_data
+
+# max concurrent connections this server support
+# you should set this parameter larger, eg. 10240
+# default value is 256
+max_connections = 1024
+
+# accept thread count
+# default value is 1 which is recommended
+# since V4.07
+accept_threads = 1
+
+# work thread count
+# work threads to deal network io
+# default value is 4
+# since V2.00
+work_threads = 4
+
+# the min network buff size
+# default value 8KB
+min_buff_size = 8KB
+
+# the max network buff size
+# default value 128KB
+max_buff_size = 128KB
+
+# the method for selecting group to upload files
+# 0: round robin
+# 1: specify group
+# 2: load balance, select the max free space group to upload file
+store_lookup = 2
+
+# which group to upload file
+# when store_lookup set to 1, must set store_group to the group name
+store_group = group2
+
+# which storage server to upload file
+# 0: round robin (default)
+# 1: the first server order by ip address
+# 2: the first server order by priority (the minimal)
+# Note: if use_trunk_file set to true, must set store_server to 1 or 2
+store_server = 0
+
+# which path (means disk or mount point) of the storage server to upload file
+# 0: round robin
+# 2: load balance, select the max free space path to upload file
+store_path = 0
+
+# which storage server to download file
+# 0: round robin (default)
+# 1: the source storage server which the current file uploaded to
+download_server = 0
+
+# reserved storage space for system or other applications.
+# if the free(available) space of any stoarge server in
+# a group <= reserved_storage_space, no file can be uploaded to this group.
+# bytes unit can be one of follows:
+### G or g for gigabyte(GB)
+### M or m for megabyte(MB)
+### K or k for kilobyte(KB)
+### no unit for byte(B)
+### XX.XX% as ratio such as: reserved_storage_space = 10%
+reserved_storage_space = 20%
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+#unix group name to run this program,
+#not set (empty) means run by the group of current user
+run_by_group=
+
+#unix username to run this program,
+#not set (empty) means run by current user
+run_by_user =
+
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" (only one asterisk) means match all ip addresses
+# we can use CIDR ips like 192.168.5.64/26
+# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
+# for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+# allow_hosts=192.168.5.64/26
+allow_hosts = *
+
+# sync log buff to disk every interval seconds
+# default value is 10 seconds
+sync_log_buff_interval = 1
+
+# check storage server alive interval seconds
+check_active_interval = 120
+
+# thread stack size, should >= 64KB
+# default value is 256KB
+thread_stack_size = 256KB
+
+# auto adjust when the ip address of the storage server changed
+# default value is true
+storage_ip_changed_auto_adjust = true
+
+# storage sync file max delay seconds
+# default value is 86400 seconds (one day)
+# since V2.00
+storage_sync_file_max_delay = 86400
+
+# the max time of storage sync a file
+# default value is 300 seconds
+# since V2.00
+storage_sync_file_max_time = 300
+
+# if use a trunk file to store several small files
+# default value is false
+# since V3.00
+use_trunk_file = false
+
+# the min slot size, should <= 4KB
+# default value is 256 bytes
+# since V3.00
+slot_min_size = 256
+
+# the max slot size, should > slot_min_size
+# store the upload file to trunk file when it's size <= this value
+# default value is 16MB
+# since V3.00
+slot_max_size = 1MB
+
+# the alignment size to allocate the trunk space
+# default value is 0 (never align)
+# since V6.05
+# NOTE: the larger the alignment size, the less likely of disk
+# fragmentation, but the more space is wasted.
+trunk_alloc_alignment_size = 256
+
+# if merge contiguous free spaces of trunk file
+# default value is false
+# since V6.05
+trunk_free_space_merge = true
+
+# if delete / reclaim the unused trunk files
+# default value is false
+# since V6.05
+delete_unused_trunk_files = false
+
+# the trunk file size, should >= 4MB
+# default value is 64MB
+# since V3.00
+trunk_file_size = 64MB
+
+# if create trunk file advancely
+# default value is false
+# since V3.06
+trunk_create_file_advance = false
+
+# the time base to create trunk file
+# the time format: HH:MM
+# default value is 02:00
+# since V3.06
+trunk_create_file_time_base = 02:00
+
+# the interval of create trunk file, unit: second
+# default value is 38400 (one day)
+# since V3.06
+trunk_create_file_interval = 86400
+
+# the threshold to create trunk file
+# when the free trunk file size less than the threshold,
+# will create he trunk files
+# default value is 0
+# since V3.06
+trunk_create_file_space_threshold = 20G
+
+# if check trunk space occupying when loading trunk free spaces
+# the occupied spaces will be ignored
+# default value is false
+# since V3.09
+# NOTICE: set this parameter to true will slow the loading of trunk spaces
+# when startup. you should set this parameter to true when neccessary.
+trunk_init_check_occupying = false
+
+# if ignore storage_trunk.dat, reload from trunk binlog
+# default value is false
+# since V3.10
+# set to true once for version upgrade when your version less than V3.10
+trunk_init_reload_from_binlog = false
+
+# the min interval for compressing the trunk binlog file
+# unit: second, 0 means never compress
+# FastDFS compress the trunk binlog when trunk init and trunk destroy
+# recommand to set this parameter to 86400 (one day)
+# default value is 0
+# since V5.01
+trunk_compress_binlog_min_interval = 86400
+
+# the interval for compressing the trunk binlog file
+# unit: second, 0 means never compress
+# recommand to set this parameter to 86400 (one day)
+# default value is 0
+# since V6.05
+trunk_compress_binlog_interval = 86400
+
+# compress the trunk binlog time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 03:00
+# since V6.05
+trunk_compress_binlog_time_base = 03:00
+
+# max backups for the trunk binlog file
+# default value is 0 (never backup)
+# since V6.05
+trunk_binlog_max_backups = 7
+
+# if use storage server ID instead of IP address
+# if you want to use dual IPs for storage server, you MUST set
+# this parameter to true, and configure the dual IPs in the file
+# configured by following item "storage_ids_filename", such as storage_ids.conf
+# default value is false
+# since V4.00
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# this parameter is valid only when use_storage_id set to true
+# since V4.00
+storage_ids_filename = storage_ids.conf
+
+# id type of the storage server in the filename, values are:
+## ip: the ip address of the storage server
+## id: the server id of the storage server
+# this paramter is valid only when use_storage_id set to true
+# default value is ip
+# since V4.03
+id_type_in_filename = id
+
+# if store slave file use symbol link
+# default value is false
+# since V4.01
+store_slave_file_use_link = false
+
+# if rotate the error log every day
+# default value is false
+# since V4.02
+rotate_error_log = false
+
+# rotate error log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.02
+error_log_rotate_time = 00:00
+
+# if compress the old error log by gzip
+# default value is false
+# since V6.04
+compress_old_error_log = false
+
+# compress the error log days before
+# default value is 1
+# since V6.04
+compress_error_log_days_before = 7
+
+# rotate error log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_error_log_size = 0
+
+# keep days of the log files
+# 0 means do not delete old log files
+# default value is 0
+log_file_keep_days = 0
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = true
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# HTTP port on this tracker server
+http.server_port = 8080
+
+# check storage HTTP server alive interval seconds
+# <= 0 for never check
+# default value is 30
+http.check_alive_interval = 30
+
+# check storage HTTP server alive type, values are:
+# tcp : connect to the storge server with HTTP port only,
+# do not request and get response
+# http: storage check alive url must return http status 200
+# default value is tcp
+http.check_alive_type = tcp
+
+# check storage HTTP server alive uri/url
+# NOTE: storage embed HTTP server support uri: /status.html
+http.check_alive_uri = /status.html
+
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/nginx_conf/nginx.conf b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/nginx_conf/nginx.conf
new file mode 100644
index 0000000..2abee9b
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/nginx_conf/nginx.conf
@@ -0,0 +1,33 @@
+worker_processes 1;
+worker_rlimit_nofile 65535; #务必先修改服务器的max open files 数。
+
+error_log /data/fastdfs_data/logs/nginx-error.log;
+
+events {
+ use epoll; #服务器若是Linux 2.6+,你应该使用epoll。
+ worker_connections 65535;
+}
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ access_log /data/fastdfs_data/logs/nginx-access.log main;
+ sendfile on;
+ keepalive_timeout 65;
+
+ gzip on;
+ gzip_min_length 2k;
+ gzip_buffers 8 32k;
+ gzip_http_version 1.1;
+ gzip_comp_level 2;
+ gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
+ gzip_vary on;
+
+ include /usr/local/nginx/conf.d/*.conf;
+
+}
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/fastdfs-V6.09.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/fastdfs-V6.09.tar.gz
new file mode 100644
index 0000000..83badd6
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/fastdfs-V6.09.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/fastdfs-nginx-module-1.23.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/fastdfs-nginx-module-1.23.tar.gz
new file mode 100644
index 0000000..70f4304
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/fastdfs-nginx-module-1.23.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/libfastcommon-1.0.60.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/libfastcommon-1.0.60.tar.gz
new file mode 100644
index 0000000..a07e0e3
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/libfastcommon-1.0.60.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/libserverframe-1.1.19.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/libserverframe-1.1.19.tar.gz
new file mode 100644
index 0000000..dff80e9
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/libserverframe-1.1.19.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/nginx-1.22.0.tar.gz b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/nginx-1.22.0.tar.gz
new file mode 100644
index 0000000..dada996
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/soft/nginx-1.22.0.tar.gz differ
diff --git a/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/start.sh b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/start.sh
new file mode 100644
index 0000000..b7f3495
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/build_image-v6.0.9/start.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+# fastdfs 配置文件,我设置的存储路径,需要提前创建
+FASTDFS_BASE_PATH=/data/fastdfs_data \
+FASTDFS_STORE_PATH=/data/fastdfs/upload \
+
+# 启用参数
+# - tracker : 启动tracker_server 服务
+# - storage : 启动storage 服务
+start_parameter=$1
+
+if [ ! -d "$FASTDFS_BASE_PATH" ]; then
+ mkdir -p ${FASTDFS_BASE_PATH};
+fi
+
+function start_tracker(){
+
+ /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
+ tail -f /data/fastdfs_data/logs/trackerd.log
+
+}
+
+function start_storage(){
+ if [ ! -d "$FASTDFS_STORE_PATH" ]; then
+ mkdir -p ${FASTDFS_STORE_PATH}/{path0,path1,path2,path3};
+ fi
+ /usr/bin/fdfs_storaged /etc/fdfs/storage.conf;
+ sleep 5
+
+ # nginx日志存储目录为/data/fastdfs_data/logs/,手动创建一下,防止storage启动慢,还没有来得及创建logs目录
+ if [ ! -d "$FASTDFS_BASE_PATH/logs" ]; then
+ mkdir -p ${FASTDFS_BASE_PATH}/logs;
+ fi
+
+ /usr/local/nginx/sbin/nginx;
+ tail -f /data/fastdfs_data/logs/storaged.log;
+}
+
+function run (){
+
+ case ${start_parameter} in
+ tracker)
+ echo "启动tracker"
+ start_tracker
+ ;;
+ storage)
+ echo "启动storage"
+ start_storage
+ ;;
+ *)
+ echo "请指定要启动哪个服务,tracker还是storage(二选一),传参为tracker | storage"
+ esac
+}
+
+run
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/anti-steal.jpg b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/anti-steal.jpg
new file mode 100644
index 0000000..a52584b
Binary files /dev/null and b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/anti-steal.jpg differ
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/client.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/client.conf
new file mode 100644
index 0000000..77d12f7
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/client.conf
@@ -0,0 +1,71 @@
+# connect timeout in seconds
+# default value is 30s
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds
+# default value is 30s
+network_timeout = 60
+
+# the base path to store log files
+base_path = /data/fastdfs_data
+
+# tracker_server can ocur more than once for multi tracker servers.
+# the value format of tracker_server is "HOST:PORT",
+# the HOST can be hostname or ip address,
+# and the HOST can be dual IPs or hostnames seperated by comma,
+# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
+# or two different types of inner (intranet) IPs.
+# for example: 192.168.2.100,122.244.141.46:22122
+# another eg.: 192.168.1.10,172.17.4.21:22122
+
+tracker_server = 192.168.0.196:22122
+tracker_server = 192.168.0.197:22122
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = false
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# if load FastDFS parameters from tracker server
+# since V4.05
+# default value is false
+load_fdfs_parameters_from_tracker = false
+
+# if use storage ID instead of IP address
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# default value is false
+# since V4.05
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V4.05
+storage_ids_filename = storage_ids.conf
+
+
+#HTTP settings
+http.tracker_server_port = 80
+
+#use "#include" directive to include HTTP other settiongs
+##include http.conf
+
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/http.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/http.conf
new file mode 100644
index 0000000..385bc45
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/http.conf
@@ -0,0 +1,29 @@
+# HTTP default content type
+http.default_content_type = application/octet-stream
+
+# MIME types mapping filename
+# MIME types file format: MIME_type extensions
+# such as: image/jpeg jpeg jpg jpe
+# you can use apache's MIME file: mime.types
+http.mime_types_filename = mime.types
+
+# if use token to anti-steal
+# default value is false (0)
+http.anti_steal.check_token = false
+
+# token TTL (time to live), seconds
+# default value is 600
+http.anti_steal.token_ttl = 900
+
+# secret key to generate anti-steal token
+# this parameter must be set when http.anti_steal.check_token set to true
+# the length of the secret key should not exceed 128 bytes
+http.anti_steal.secret_key = FastDFS1234567890
+
+# return the content of the file when check token fail
+# default value is empty (no file sepecified)
+http.anti_steal.token_check_fail = /home/yuqing/fastdfs/conf/anti-steal.jpg
+
+# if support multi regions for HTTP Range
+# default value is true
+http.multi_range.enabed = true
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/mime.types b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/mime.types
new file mode 100644
index 0000000..c83a690
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/mime.types
@@ -0,0 +1,1065 @@
+# This is a comment. I love comments.
+
+# This file controls what Internet media types are sent to the client for
+# given file extension(s). Sending the correct media type to the client
+# is important so they know how to handle the content of the file.
+# Extra types can either be added here or by using an AddType directive
+# in your config files. For more information about Internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type
+# registry is at .
+
+# MIME type Extensions
+application/activemessage
+application/andrew-inset ez
+application/applefile
+application/atom+xml atom
+application/atomcat+xml atomcat
+application/atomicmail
+application/atomsvc+xml atomsvc
+application/auth-policy+xml
+application/batch-smtp
+application/beep+xml
+application/cals-1840
+application/ccxml+xml ccxml
+application/cellml+xml
+application/cnrp+xml
+application/commonground
+application/conference-info+xml
+application/cpl+xml
+application/csta+xml
+application/cstadata+xml
+application/cybercash
+application/davmount+xml davmount
+application/dca-rft
+application/dec-dx
+application/dialog-info+xml
+application/dicom
+application/dns
+application/dvcs
+application/ecmascript ecma
+application/edi-consent
+application/edi-x12
+application/edifact
+application/epp+xml
+application/eshop
+application/fastinfoset
+application/fastsoap
+application/fits
+application/font-tdpfr pfr
+application/h224
+application/http
+application/hyperstudio stk
+application/iges
+application/im-iscomposing+xml
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/iotp
+application/ipp
+application/isup
+application/javascript js
+application/json json
+application/kpml-request+xml
+application/kpml-response+xml
+application/lost+xml lostxml
+application/mac-binhex40 hqx
+application/mac-compactpro cpt
+application/macwriteii
+application/marc mrc
+application/mathematica ma nb mb
+application/mathml+xml mathml
+application/mbms-associated-procedure-description+xml
+application/mbms-deregister+xml
+application/mbms-envelope+xml
+application/mbms-msk+xml
+application/mbms-msk-response+xml
+application/mbms-protection-description+xml
+application/mbms-reception-report+xml
+application/mbms-register+xml
+application/mbms-register-response+xml
+application/mbms-user-service-description+xml
+application/mbox mbox
+application/media_control+xml
+application/mediaservercontrol+xml mscml
+application/mikey
+application/moss-keys
+application/moss-signature
+application/mosskey-data
+application/mosskey-request
+application/mp4 mp4s
+application/mpeg4-generic
+application/mpeg4-iod
+application/mpeg4-iod-xmt
+application/msword doc dot
+application/mxf mxf
+application/nasdata
+application/news-transmission
+application/nss
+application/ocsp-request
+application/ocsp-response
+application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc
+application/oda oda
+application/oebps-package+xml
+application/ogg ogx
+application/parityfec
+application/patch-ops-error+xml xer
+application/pdf pdf
+application/pgp-encrypted pgp
+application/pgp-keys
+application/pgp-signature asc sig
+application/pics-rules prf
+application/pidf+xml
+application/pidf-diff+xml
+application/pkcs10 p10
+application/pkcs7-mime p7m p7c
+application/pkcs7-signature p7s
+application/pkix-cert cer
+application/pkix-crl crl
+application/pkix-pkipath pkipath
+application/pkixcmp pki
+application/pls+xml pls
+application/poc-settings+xml
+application/postscript ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww cww
+application/prs.nprend
+application/prs.plucker
+application/qsig
+application/rdf+xml rdf
+application/reginfo+xml rif
+application/relax-ng-compact-syntax rnc
+application/remote-printing
+application/resource-lists+xml rl
+application/resource-lists-diff+xml rld
+application/riscos
+application/rlmi+xml
+application/rls-services+xml rs
+application/rsd+xml rsd
+application/rss+xml rss
+application/rtf rtf
+application/rtx
+application/samlassertion+xml
+application/samlmetadata+xml
+application/sbml+xml sbml
+application/scvp-cv-request scq
+application/scvp-cv-response scs
+application/scvp-vp-request spq
+application/scvp-vp-response spp
+application/sdp sdp
+application/set-payment
+application/set-payment-initiation setpay
+application/set-registration
+application/set-registration-initiation setreg
+application/sgml
+application/sgml-open-catalog
+application/shf+xml shf
+application/sieve
+application/simple-filter+xml
+application/simple-message-summary
+application/simplesymbolcontainer
+application/slate
+application/smil
+application/smil+xml smi smil
+application/soap+fastinfoset
+application/soap+xml
+application/sparql-query rq
+application/sparql-results+xml srx
+application/spirits-event+xml
+application/srgs gram
+application/srgs+xml grxml
+application/ssml+xml ssml
+application/timestamp-query
+application/timestamp-reply
+application/tve-trigger
+application/ulpfec
+application/vemmi
+application/vividence.scriptfile
+application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.pic-bw-large plb
+application/vnd.3gpp.pic-bw-small psb
+application/vnd.3gpp.pic-bw-var pvb
+application/vnd.3gpp.sms
+application/vnd.3gpp2.bcmcsinfo+xml
+application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap tcap
+application/vnd.3m.post-it-notes pwn
+application/vnd.accpac.simply.aso aso
+application/vnd.accpac.simply.imp imp
+application/vnd.acucobol acu
+application/vnd.acucorp atc acutc
+application/vnd.adobe.xdp+xml xdp
+application/vnd.adobe.xfdf xfdf
+application/vnd.aether.imp
+application/vnd.americandynamics.acc acc
+application/vnd.amiga.ami ami
+application/vnd.anser-web-certificate-issue-initiation cii
+application/vnd.anser-web-funds-transfer-initiation fti
+application/vnd.antix.game-component atx
+application/vnd.apple.installer+xml mpkg
+application/vnd.arastra.swi swi
+application/vnd.audiograph aep
+application/vnd.autopackage
+application/vnd.avistar+xml
+application/vnd.blueice.multipass mpm
+application/vnd.bmi bmi
+application/vnd.businessobjects rep
+application/vnd.cab-jscript
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.cendio.thinlinc.clientconf
+application/vnd.chemdraw+xml cdxml
+application/vnd.chipnuts.karaoke-mmd mmd
+application/vnd.cinderella cdy
+application/vnd.cirpack.isdn-ext
+application/vnd.claymore cla
+application/vnd.clonk.c4group c4g c4d c4f c4p c4u
+application/vnd.commerce-battelle
+application/vnd.commonspace csp cst
+application/vnd.contact.cmsg cdbcmsg
+application/vnd.cosmocaller cmc
+application/vnd.crick.clicker clkx
+application/vnd.crick.clicker.keyboard clkk
+application/vnd.crick.clicker.palette clkp
+application/vnd.crick.clicker.template clkt
+application/vnd.crick.clicker.wordbank clkw
+application/vnd.criticaltools.wbs+xml wbs
+application/vnd.ctc-posml pml
+application/vnd.ctct.ws+xml
+application/vnd.cups-pdf
+application/vnd.cups-postscript
+application/vnd.cups-ppd ppd
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.curl curl
+application/vnd.cybank
+application/vnd.data-vision.rdz rdz
+application/vnd.denovo.fcselayout-link fe_launch
+application/vnd.dna dna
+application/vnd.dolby.mlp mlp
+application/vnd.dpgraph dpg
+application/vnd.dreamfactory dfac
+application/vnd.dvb.esgcontainer
+application/vnd.dvb.ipdcesgaccess
+application/vnd.dvb.iptv.alfec-base
+application/vnd.dvb.iptv.alfec-enhancement
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart mag
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven nml
+application/vnd.epson.esf esf
+application/vnd.epson.msf msf
+application/vnd.epson.quickanime qam
+application/vnd.epson.salt slt
+application/vnd.epson.ssf ssf
+application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml es3 et3
+application/vnd.eudora.data
+application/vnd.ezpix-album ez2
+application/vnd.ezpix-package ez3
+application/vnd.fdf fdf
+application/vnd.ffsns
+application/vnd.fints
+application/vnd.flographit gph
+application/vnd.fluxtime.clip ftc
+application/vnd.font-fontforge-sfd
+application/vnd.framemaker fm frame maker
+application/vnd.frogans.fnc fnc
+application/vnd.frogans.ltf ltf
+application/vnd.fsc.weblaunch fsc
+application/vnd.fujitsu.oasys oas
+application/vnd.fujitsu.oasys2 oa2
+application/vnd.fujitsu.oasys3 oa3
+application/vnd.fujitsu.oasysgp fg5
+application/vnd.fujitsu.oasysprs bh2
+application/vnd.fujixerox.art-ex
+application/vnd.fujixerox.art4
+application/vnd.fujixerox.hbpl
+application/vnd.fujixerox.ddd ddd
+application/vnd.fujixerox.docuworks xdw
+application/vnd.fujixerox.docuworks.binder xbd
+application/vnd.fut-misnet
+application/vnd.fuzzysheet fzs
+application/vnd.genomatix.tuxedo txd
+application/vnd.gmx gmx
+application/vnd.google-earth.kml+xml kml
+application/vnd.google-earth.kmz kmz
+application/vnd.grafeq gqf gqs
+application/vnd.gridmp
+application/vnd.groove-account gac
+application/vnd.groove-help ghf
+application/vnd.groove-identity-message gim
+application/vnd.groove-injector grv
+application/vnd.groove-tool-message gtm
+application/vnd.groove-tool-template tpl
+application/vnd.groove-vcard vcg
+application/vnd.handheld-entertainment+xml zmm
+application/vnd.hbci hbci
+application/vnd.hcl-bireports
+application/vnd.hhe.lesson-player les
+application/vnd.hp-hpgl hpgl
+application/vnd.hp-hpid hpid
+application/vnd.hp-hps hps
+application/vnd.hp-jlyt jlt
+application/vnd.hp-pcl pcl
+application/vnd.hp-pclxl pclxl
+application/vnd.httphone
+application/vnd.hydrostatix.sof-data sfd-hdstx
+application/vnd.hzn-3d-crossword x3d
+application/vnd.ibm.afplinedata
+application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay mpy
+application/vnd.ibm.modcap afp listafp list3820
+application/vnd.ibm.rights-management irm
+application/vnd.ibm.secure-container sc
+application/vnd.iccprofile icc icm
+application/vnd.igloader igl
+application/vnd.immervision-ivp ivp
+application/vnd.immervision-ivu ivu
+application/vnd.informedcontrol.rms+xml
+application/vnd.intercon.formnet xpw xpx
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo qbo
+application/vnd.intu.qfx qfx
+application/vnd.iptc.g2.conceptitem+xml
+application/vnd.iptc.g2.knowledgeitem+xml
+application/vnd.iptc.g2.newsitem+xml
+application/vnd.iptc.g2.packageitem+xml
+application/vnd.ipunplugged.rcprofile rcprofile
+application/vnd.irepository.package+xml irp
+application/vnd.is-xpr xpr
+application/vnd.jam jam
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms rms
+application/vnd.jisp jisp
+application/vnd.joost.joda-archive joda
+application/vnd.kahootz ktz ktr
+application/vnd.kde.karbon karbon
+application/vnd.kde.kchart chrt
+application/vnd.kde.kformula kfo
+application/vnd.kde.kivio flw
+application/vnd.kde.kontour kon
+application/vnd.kde.kpresenter kpr kpt
+application/vnd.kde.kspread ksp
+application/vnd.kde.kword kwd kwt
+application/vnd.kenameaapp htke
+application/vnd.kidspiration kia
+application/vnd.kinar kne knp
+application/vnd.koan skp skd skt skm
+application/vnd.kodak-descriptor sse
+application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop lbd
+application/vnd.llamagraphics.life-balance.exchange+xml lbe
+application/vnd.lotus-1-2-3 123
+application/vnd.lotus-approach apr
+application/vnd.lotus-freelance pre
+application/vnd.lotus-notes nsf
+application/vnd.lotus-organizer org
+application/vnd.lotus-screencam scm
+application/vnd.lotus-wordpro lwp
+application/vnd.macports.portpkg portpkg
+application/vnd.marlin.drm.actiontoken+xml
+application/vnd.marlin.drm.conftoken+xml
+application/vnd.marlin.drm.license+xml
+application/vnd.marlin.drm.mdcf
+application/vnd.mcd mcd
+application/vnd.medcalcdata mc1
+application/vnd.mediastation.cdkey cdkey
+application/vnd.meridian-slingshot
+application/vnd.mfer mwf
+application/vnd.mfmp mfm
+application/vnd.micrografx.flo flo
+application/vnd.micrografx.igx igx
+application/vnd.mif mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf daf
+application/vnd.mobius.dis dis
+application/vnd.mobius.mbk mbk
+application/vnd.mobius.mqy mqy
+application/vnd.mobius.msl msl
+application/vnd.mobius.plc plc
+application/vnd.mobius.txf txf
+application/vnd.mophun.application mpn
+application/vnd.mophun.certificate mpc
+application/vnd.motorola.flexsuite
+application/vnd.motorola.flexsuite.adsi
+application/vnd.motorola.flexsuite.fis
+application/vnd.motorola.flexsuite.gotap
+application/vnd.motorola.flexsuite.kmr
+application/vnd.motorola.flexsuite.ttc
+application/vnd.motorola.flexsuite.wem
+application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml xul
+application/vnd.ms-artgalry cil
+application/vnd.ms-asf asf
+application/vnd.ms-cab-compressed cab
+application/vnd.ms-excel xls xlm xla xlc xlt xlw
+application/vnd.ms-fontobject eot
+application/vnd.ms-htmlhelp chm
+application/vnd.ms-ims ims
+application/vnd.ms-lrm lrm
+application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.ms-project mpp mpt
+application/vnd.ms-tnef
+application/vnd.ms-wmdrm.lic-chlg-req
+application/vnd.ms-wmdrm.lic-resp
+application/vnd.ms-wmdrm.meter-chlg-req
+application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-works wps wks wcm wdb
+application/vnd.ms-wpl wpl
+application/vnd.ms-xpsdocument xps
+application/vnd.mseq mseq
+application/vnd.msign
+application/vnd.multiad.creator
+application/vnd.multiad.creator.cif
+application/vnd.music-niff
+application/vnd.musician mus
+application/vnd.muvee.style msty
+application/vnd.ncd.control
+application/vnd.ncd.reference
+application/vnd.nervana
+application/vnd.netfpx
+application/vnd.neurolanguage.nlu nlu
+application/vnd.noblenet-directory nnd
+application/vnd.noblenet-sealer nns
+application/vnd.noblenet-web nnw
+application/vnd.nokia.catalogs
+application/vnd.nokia.conml+wbxml
+application/vnd.nokia.conml+xml
+application/vnd.nokia.isds-radio-presets
+application/vnd.nokia.iptv.config+xml
+application/vnd.nokia.landmark+wbxml
+application/vnd.nokia.landmark+xml
+application/vnd.nokia.landmarkcollection+xml
+application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data ngdat
+application/vnd.nokia.n-gage.symbian.install n-gage
+application/vnd.nokia.ncd
+application/vnd.nokia.pcd+wbxml
+application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset rpst
+application/vnd.nokia.radio-presets rpss
+application/vnd.novadigm.edm edm
+application/vnd.novadigm.edx edx
+application/vnd.novadigm.ext ext
+application/vnd.oasis.opendocument.chart odc
+application/vnd.oasis.opendocument.chart-template otc
+application/vnd.oasis.opendocument.formula odf
+application/vnd.oasis.opendocument.formula-template otf
+application/vnd.oasis.opendocument.graphics odg
+application/vnd.oasis.opendocument.graphics-template otg
+application/vnd.oasis.opendocument.image odi
+application/vnd.oasis.opendocument.image-template oti
+application/vnd.oasis.opendocument.presentation odp
+application/vnd.oasis.opendocument.presentation-template otp
+application/vnd.oasis.opendocument.spreadsheet ods
+application/vnd.oasis.opendocument.spreadsheet-template ots
+application/vnd.oasis.opendocument.text odt
+application/vnd.oasis.opendocument.text-master otm
+application/vnd.oasis.opendocument.text-template ott
+application/vnd.oasis.opendocument.text-web oth
+application/vnd.obn
+application/vnd.olpc-sugar xo
+application/vnd.oma-scws-config
+application/vnd.oma-scws-http-request
+application/vnd.oma-scws-http-response
+application/vnd.oma.bcast.associated-procedure-parameter+xml
+application/vnd.oma.bcast.drm-trigger+xml
+application/vnd.oma.bcast.imd+xml
+application/vnd.oma.bcast.ltkm
+application/vnd.oma.bcast.notification+xml
+application/vnd.oma.bcast.provisioningtrigger
+application/vnd.oma.bcast.sgboot
+application/vnd.oma.bcast.sgdd+xml
+application/vnd.oma.bcast.sgdu
+application/vnd.oma.bcast.simple-symbol-container
+application/vnd.oma.bcast.smartcard-trigger+xml
+application/vnd.oma.bcast.sprov+xml
+application/vnd.oma.bcast.stkm
+application/vnd.oma.dcd
+application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml dd2
+application/vnd.oma.drm.risd+xml
+application/vnd.oma.group-usage-list+xml
+application/vnd.oma.poc.detailed-progress-report+xml
+application/vnd.oma.poc.final-report+xml
+application/vnd.oma.poc.groups+xml
+application/vnd.oma.poc.invocation-descriptor+xml
+application/vnd.oma.poc.optimized-progress-report+xml
+application/vnd.oma.xcap-directory+xml
+application/vnd.omads-email+xml
+application/vnd.omads-file+xml
+application/vnd.omads-folder+xml
+application/vnd.omaloc-supl-init
+application/vnd.openofficeorg.extension oxt
+application/vnd.osa.netdeploy
+application/vnd.osgi.dp dp
+application/vnd.otps.ct-kip+xml
+application/vnd.palm prc pdb pqa oprc
+application/vnd.paos.xml
+application/vnd.pg.format str
+application/vnd.pg.osasli ei6
+application/vnd.piaccess.application-licence
+application/vnd.picsel efif
+application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn plf
+application/vnd.powerbuilder6 pbd
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.preminet
+application/vnd.previewsystems.box box
+application/vnd.proteus.magazine mgz
+application/vnd.publishare-delta-tree qps
+application/vnd.pvi.ptid1 ptid
+application/vnd.pwg-multiplexed
+application/vnd.pwg-xhtml-print+xml
+application/vnd.qualcomm.brew-app-res
+application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
+application/vnd.rapid
+application/vnd.recordare.musicxml mxl
+application/vnd.recordare.musicxml+xml
+application/vnd.renlearn.rlprint
+application/vnd.rn-realmedia rm
+application/vnd.route66.link66+xml link66
+application/vnd.ruckus.download
+application/vnd.s3sms
+application/vnd.sbm.mid2
+application/vnd.scribus
+application/vnd.sealed.3df
+application/vnd.sealed.csf
+application/vnd.sealed.doc
+application/vnd.sealed.eml
+application/vnd.sealed.mht
+application/vnd.sealed.net
+application/vnd.sealed.ppt
+application/vnd.sealed.tiff
+application/vnd.sealed.xls
+application/vnd.sealedmedia.softseal.html
+application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail see
+application/vnd.sema sema
+application/vnd.semd semd
+application/vnd.semf semf
+application/vnd.shana.informed.formdata ifm
+application/vnd.shana.informed.formtemplate itp
+application/vnd.shana.informed.interchange iif
+application/vnd.shana.informed.package ipk
+application/vnd.simtech-mindmapper twd twds
+application/vnd.smaf mmf
+application/vnd.software602.filler.form+xml
+application/vnd.software602.filler.form-xml-zip
+application/vnd.solent.sdkm+xml sdkm sdkd
+application/vnd.spotfire.dxp dxp
+application/vnd.spotfire.sfs sfs
+application/vnd.sss-cod
+application/vnd.sss-dtf
+application/vnd.sss-ntf
+application/vnd.street-stream
+application/vnd.sun.wadl+xml
+application/vnd.sus-calendar sus susp
+application/vnd.svd svd
+application/vnd.swiftview-ics
+application/vnd.syncml+xml xsm
+application/vnd.syncml.dm+wbxml bdm
+application/vnd.syncml.dm+xml xdm
+application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive tao
+application/vnd.tmobile-livetv tmo
+application/vnd.trid.tpt tpt
+application/vnd.triscape.mxs mxs
+application/vnd.trueapp tra
+application/vnd.truedoc
+application/vnd.ufdl ufd ufdl
+application/vnd.uiq.theme utz
+application/vnd.umajin umj
+application/vnd.unity unityweb
+application/vnd.uoml+xml uoml
+application/vnd.uplanet.alert
+application/vnd.uplanet.alert-wbxml
+application/vnd.uplanet.bearer-choice
+application/vnd.uplanet.bearer-choice-wbxml
+application/vnd.uplanet.cacheop
+application/vnd.uplanet.cacheop-wbxml
+application/vnd.uplanet.channel
+application/vnd.uplanet.channel-wbxml
+application/vnd.uplanet.list
+application/vnd.uplanet.list-wbxml
+application/vnd.uplanet.listcmd
+application/vnd.uplanet.listcmd-wbxml
+application/vnd.uplanet.signal
+application/vnd.vcx vcx
+application/vnd.vd-study
+application/vnd.vectorworks
+application/vnd.vidsoft.vidconference
+application/vnd.visio vsd vst vss vsw
+application/vnd.visionary vis
+application/vnd.vividence.scriptfile
+application/vnd.vsf vsf
+application/vnd.wap.sic
+application/vnd.wap.slc
+application/vnd.wap.wbxml wbxml
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/vnd.webturbo wtb
+application/vnd.wfa.wsc
+application/vnd.wmc
+application/vnd.wmf.bootstrap
+application/vnd.wordperfect wpd
+application/vnd.wqd wqd
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf stf
+application/vnd.wv.csp+wbxml
+application/vnd.wv.csp+xml
+application/vnd.wv.ssp+xml
+application/vnd.xara xar
+application/vnd.xfdl xfdl
+application/vnd.xmi+xml
+application/vnd.xmpie.cpkg
+application/vnd.xmpie.dpkg
+application/vnd.xmpie.plan
+application/vnd.xmpie.ppkg
+application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic hvd
+application/vnd.yamaha.hv-script hvs
+application/vnd.yamaha.hv-voice hvp
+application/vnd.yamaha.smaf-audio saf
+application/vnd.yamaha.smaf-phrase spf
+application/vnd.yellowriver-custom-menu cmp
+application/vnd.zzazz.deck+xml zaz
+application/voicexml+xml vxml
+application/watcherinfo+xml
+application/whoispp-query
+application/whoispp-response
+application/winhlp hlp
+application/wita
+application/wordperfect5.1
+application/wsdl+xml wsdl
+application/wspolicy+xml wspolicy
+application/x-ace-compressed ace
+application/x-bcpio bcpio
+application/x-bittorrent torrent
+application/x-bzip bz
+application/x-bzip2 bz2 boz
+application/x-cdlink vcd
+application/x-chat chat
+application/x-chess-pgn pgn
+application/x-compress
+application/x-cpio cpio
+application/x-csh csh
+application/x-director dcr dir dxr fgd
+application/x-dvi dvi
+application/x-futuresplash spl
+application/x-gtar gtar
+application/x-gzip
+application/x-hdf hdf
+application/x-latex latex
+application/x-ms-wmd wmd
+application/x-ms-wmz wmz
+application/x-msaccess mdb
+application/x-msbinder obd
+application/x-mscardfile crd
+application/x-msclip clp
+application/x-msdownload exe dll com bat msi
+application/x-msmediaview mvb m13 m14
+application/x-msmetafile wmf
+application/x-msmoney mny
+application/x-mspublisher pub
+application/x-msschedule scd
+application/x-msterminal trm
+application/x-mswrite wri
+application/x-netcdf nc cdf
+application/x-pkcs12 p12 pfx
+application/x-pkcs7-certificates p7b spc
+application/x-pkcs7-certreqresp p7r
+application/x-rar-compressed rar
+application/x-sh sh
+application/x-shar shar
+application/x-shockwave-flash swf
+application/x-stuffit sit
+application/x-stuffitx sitx
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-tar tar
+application/x-tcl tcl
+application/x-tex tex
+application/x-texinfo texinfo texi
+application/x-ustar ustar
+application/x-wais-source src
+application/x-x509-ca-cert der crt
+application/x400-bp
+application/xcap-att+xml
+application/xcap-caps+xml
+application/xcap-el+xml
+application/xcap-error+xml
+application/xcap-ns+xml
+application/xenc+xml xenc
+application/xhtml+xml xhtml xht
+application/xml xml xsl
+application/xml-dtd dtd
+application/xml-external-parsed-entity
+application/xmpp+xml
+application/xop+xml xop
+application/xslt+xml xslt
+application/xspf+xml xspf
+application/xv+xml mxml xhvml xvml xvm
+application/zip zip
+audio/32kadpcm
+audio/3gpp
+audio/3gpp2
+audio/ac3
+audio/amr
+audio/amr-wb
+audio/amr-wb+
+audio/asc
+audio/basic au snd
+audio/bv16
+audio/bv32
+audio/clearmode
+audio/cn
+audio/dat12
+audio/dls
+audio/dsr-es201108
+audio/dsr-es202050
+audio/dsr-es202211
+audio/dsr-es202212
+audio/dvi4
+audio/eac3
+audio/evrc
+audio/evrc-qcp
+audio/evrc0
+audio/evrc1
+audio/evrcb
+audio/evrcb0
+audio/evrcb1
+audio/evrcwb
+audio/evrcwb0
+audio/evrcwb1
+audio/g722
+audio/g7221
+audio/g723
+audio/g726-16
+audio/g726-24
+audio/g726-32
+audio/g726-40
+audio/g728
+audio/g729
+audio/g7291
+audio/g729d
+audio/g729e
+audio/gsm
+audio/gsm-efr
+audio/ilbc
+audio/l16
+audio/l20
+audio/l24
+audio/l8
+audio/lpc
+audio/midi mid midi kar rmi
+audio/mobile-xmf
+audio/mp4 mp4a
+audio/mp4a-latm
+audio/mpa
+audio/mpa-robust
+audio/mpeg mpga mp2 mp2a mp3 m2a m3a
+audio/mpeg4-generic
+audio/ogg oga ogg spx
+audio/parityfec
+audio/pcma
+audio/pcmu
+audio/prs.sid
+audio/qcelp
+audio/red
+audio/rtp-enc-aescm128
+audio/rtp-midi
+audio/rtx
+audio/smv
+audio/smv0
+audio/smv-qcp
+audio/sp-midi
+audio/t140c
+audio/t38
+audio/telephone-event
+audio/tone
+audio/ulpfec
+audio/vdvi
+audio/vmr-wb
+audio/vnd.3gpp.iufp
+audio/vnd.4sb
+audio/vnd.audiokoz
+audio/vnd.celp
+audio/vnd.cisco.nse
+audio/vnd.cmles.radio-events
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.digital-winds eol
+audio/vnd.dlna.adts
+audio/vnd.dolby.mlp
+audio/vnd.dts dts
+audio/vnd.dts.hd dtshd
+audio/vnd.everad.plj
+audio/vnd.hns.audio
+audio/vnd.lucent.voice lvp
+audio/vnd.ms-playready.media.pya pya
+audio/vnd.nokia.mobile-xmf
+audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800 ecelp4800
+audio/vnd.nuera.ecelp7470 ecelp7470
+audio/vnd.nuera.ecelp9600 ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.qcelp
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.sealedmedia.softseal.mpeg
+audio/vnd.vmx.cvsd
+audio/vorbis
+audio/vorbis-config
+audio/wav wav
+audio/x-aiff aif aiff aifc
+audio/x-mpegurl m3u
+audio/x-ms-wax wax
+audio/x-ms-wma wma
+audio/x-pn-realaudio ram ra
+audio/x-pn-realaudio-plugin rmp
+audio/x-wav wav
+chemical/x-cdx cdx
+chemical/x-cif cif
+chemical/x-cmdf cmdf
+chemical/x-cml cml
+chemical/x-csml csml
+chemical/x-pdb pdb
+chemical/x-xyz xyz
+image/bmp bmp
+image/cgm cgm
+image/fits
+image/g3fax g3
+image/gif gif
+image/ief ief
+image/jp2
+image/jpeg jpeg jpg jpe
+image/jpm
+image/jpx
+image/naplps
+image/png png
+image/prs.btif btif
+image/prs.pti
+image/svg+xml svg svgz
+image/t38
+image/tiff tiff tif
+image/tiff-fx
+image/vnd.adobe.photoshop psd
+image/vnd.cns.inf2
+image/vnd.djvu djvu djv
+image/vnd.dwg dwg
+image/vnd.dxf dxf
+image/vnd.fastbidsheet fbs
+image/vnd.fpx fpx
+image/vnd.fst fst
+image/vnd.fujixerox.edmics-mmr mmr
+image/vnd.fujixerox.edmics-rlc rlc
+image/vnd.globalgraphics.pgb
+image/vnd.microsoft.icon
+image/vnd.mix
+image/vnd.ms-modi mdi
+image/vnd.net-fpx npx
+image/vnd.sealed.png
+image/vnd.sealedmedia.softseal.gif
+image/vnd.sealedmedia.softseal.jpg
+image/vnd.svf
+image/vnd.wap.wbmp wbmp
+image/vnd.xiff xif
+image/x-cmu-raster ras
+image/x-cmx cmx
+image/x-icon ico
+image/x-pcx pcx
+image/x-pict pic pct
+image/x-portable-anymap pnm
+image/x-portable-bitmap pbm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-rgb rgb
+image/x-xbitmap xbm
+image/x-xpixmap xpm
+image/x-xwindowdump xwd
+message/cpim
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/global
+message/global-delivery-status
+message/global-disposition-notification
+message/global-headers
+message/http
+message/news
+message/partial
+message/rfc822 eml mime
+message/s-http
+message/sip
+message/sipfrag
+message/tracking-status
+message/vnd.si.simp
+model/iges igs iges
+model/mesh msh mesh silo
+model/vnd.dwf dwf
+model/vnd.flatland.3dml
+model/vnd.gdl gdl
+model/vnd.gs.gdl
+model/vnd.gtw gtw
+model/vnd.moml+xml
+model/vnd.mts mts
+model/vnd.parasolid.transmit.binary
+model/vnd.parasolid.transmit.text
+model/vnd.vtu vtu
+model/vrml wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/calendar ics ifb
+text/css css
+text/csv csv
+text/directory
+text/dns
+text/enriched
+text/html html htm
+text/parityfec
+text/plain txt text conf def list log in
+text/prs.fallenstein.rst
+text/prs.lines.tag dsc
+text/red
+text/rfc822-headers
+text/richtext rtx
+text/rtf
+text/rtp-enc-aescm128
+text/rtx
+text/sgml sgml sgm
+text/t140
+text/tab-separated-values tsv
+text/troff t tr roff man me ms
+text/ulpfec
+text/uri-list uri uris urls
+text/vnd.abc
+text/vnd.curl
+text/vnd.dmclientscript
+text/vnd.esmertec.theme-descriptor
+text/vnd.fly fly
+text/vnd.fmi.flexstor flx
+text/vnd.graphviz gv
+text/vnd.in3d.3dml 3dml
+text/vnd.in3d.spot spot
+text/vnd.iptc.newsml
+text/vnd.iptc.nitf
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage
+text/vnd.net2phone.commcenter.command
+text/vnd.si.uricatalogue
+text/vnd.sun.j2me.app-descriptor jad
+text/vnd.trolltech.linguist
+text/vnd.wap.si
+text/vnd.wap.sl
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/x-asm s asm
+text/x-c c cc cxx cpp h hh dic
+text/x-fortran f for f77 f90
+text/x-pascal p pas
+text/x-java-source java
+text/x-setext etx
+text/x-uuencode uu
+text/x-vcalendar vcs
+text/x-vcard vcf
+text/xml
+text/xml-external-parsed-entity
+video/3gpp 3gp
+video/3gpp-tt
+video/3gpp2 3g2
+video/bmpeg
+video/bt656
+video/celb
+video/dv
+video/h261 h261
+video/h263 h263
+video/h263-1998
+video/h263-2000
+video/h264 h264
+video/jpeg jpgv
+video/jpeg2000
+video/jpm jpm jpgm
+video/mj2 mj2 mjp2
+video/mp1s
+video/mp2p
+video/mp2t
+video/mp4 mp4 mp4v mpg4
+video/mp4v-es
+video/mpeg mpeg mpg mpe m1v m2v
+video/mpeg4-generic
+video/mpv
+video/nv
+video/ogg ogv
+video/parityfec
+video/pointer
+video/quicktime qt mov
+video/raw
+video/rtp-enc-aescm128
+video/rtx
+video/smpte292m
+video/ulpfec
+video/vc1
+video/vnd.cctv
+video/vnd.dlna.mpeg-tts
+video/vnd.fvt fvt
+video/vnd.hns.video
+video/vnd.iptvforum.1dparityfec-1010
+video/vnd.iptvforum.1dparityfec-2005
+video/vnd.iptvforum.2dparityfec-1010
+video/vnd.iptvforum.2dparityfec-2005
+video/vnd.iptvforum.ttsavc
+video/vnd.iptvforum.ttsmpeg2
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl mxu m4u
+video/vnd.ms-playready.media.pyv pyv
+video/vnd.nokia.interleaved-multimedia
+video/vnd.nokia.videovoip
+video/vnd.objectvideo
+video/vnd.sealed.mpeg1
+video/vnd.sealed.mpeg4
+video/vnd.sealed.swf
+video/vnd.sealedmedia.softseal.mov
+video/vnd.vivo viv
+video/x-fli fli
+video/x-ms-asf asf asx
+video/x-ms-wm wm
+video/x-ms-wmv wmv
+video/x-ms-wmx wmx
+video/x-ms-wvx wvx
+video/x-msvideo avi
+video/x-sgi-movie movie
+x-conference/x-cooltalk ice
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/mod_fastdfs.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/mod_fastdfs.conf
new file mode 100644
index 0000000..1fbebcf
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/mod_fastdfs.conf
@@ -0,0 +1,137 @@
+# connect timeout in seconds
+# default value is 30s
+connect_timeout=15
+
+# network recv and send timeout in seconds
+# default value is 30s
+network_timeout=30
+
+# the base path to store log files
+base_path=/data/fastdfs_data
+
+# if load FastDFS parameters from tracker server
+# since V1.12
+# default value is false
+load_fdfs_parameters_from_tracker=true
+
+# storage sync file max delay seconds
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V1.12
+# default value is 86400 seconds (one day)
+storage_sync_file_max_delay = 86400
+
+# if use storage ID instead of IP address
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# default value is false
+# since V1.13
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# same as tracker.conf
+# valid only when load_fdfs_parameters_from_tracker is false
+# since V1.13
+storage_ids_filename = storage_ids.conf
+
+# FastDFS tracker_server can ocur more than once, and tracker_server format is
+# "host:port", host can be hostname or ip address
+# valid only when load_fdfs_parameters_from_tracker is true
+tracker_server = 192.168.209.121:22122
+tracker_server = 192.168.209.122:22122
+
+# the port of the local storage server
+# the default value is 23000
+storage_server_port=23000
+
+# the group name of the local storage server
+group_name=group1
+
+# if the url / uri including the group name
+# set to false when uri like /M00/00/00/xxx
+# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
+# default value is false
+url_have_group_name = true
+
+# path(disk or mount point) count, default value is 1
+# must same as storage.conf
+store_path_count=1
+
+# store_path#, based 0, if store_path0 not exists, it's value is base_path
+# the paths must be exist
+# must same as storage.conf
+store_path0=/data/fastdfs/upload/path0
+#store_path1=/home/yuqing/fastdfs1
+
+# standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level=info
+
+# set the log filename, such as /usr/local/apache2/logs/mod_fastdfs.log
+# empty for output to stderr (apache and nginx error_log file)
+log_filename=
+
+# response mode when the file not exist in the local file system
+## proxy: get the content from other storage server, then send to client
+## redirect: redirect to the original storage server (HTTP Header is Location)
+response_mode=proxy
+
+# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
+# multi aliases split by comma. empty value means auto set by OS type
+# this paramter used to get all ip address of the local host
+# default values is empty
+if_alias_prefix=
+
+# use "#include" directive to include HTTP config file
+# NOTE: #include is an include directive, do NOT remove the # before include
+#include http.conf
+
+
+# if support flv
+# default value is false
+# since v1.15
+flv_support = true
+
+# flv file extension name
+# default value is flv
+# since v1.15
+flv_extension = flv
+
+
+## 如果在此存储服务器上支持多组时,有几组就设置几组。单组为0.
+## 一台服务器没有必要运行多个group的storage,因为stroage本身支持多存储目录的
+# set the group count
+# set to none zero to support multi-group on this storage server
+# set to 0 for single group only
+# groups settings section as [group1], [group2], ..., [groupN]
+# default value is 0
+# since v1.14
+group_count = 0
+
+## 如果在此存储服务器上支持多组时,有几组就设置几组
+# group settings for group #1
+# since v1.14
+# when support multi-group on this storage server, uncomment following section
+#[group1]
+#group_name=group1
+#storage_server_port=23000
+#store_path_count=2
+#store_path0=/home/yuqing/fastdfs
+#store_path1=/home/yuqing/fastdfs1
+
+# group settings for group #2
+# since v1.14
+# when support multi-group, uncomment following section as neccessary
+#[group2]
+#group_name=group2
+#storage_server_port=23000
+#store_path_count=1
+#store_path0=/home/yuqing/fastdfs
+
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/storage.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/storage.conf
new file mode 100644
index 0000000..555054d
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/storage.conf
@@ -0,0 +1,353 @@
+# is this config file disabled
+# false for enabled
+# true for disabled
+disabled = false
+
+# the name of the group this storage server belongs to
+#
+# comment or remove this item for fetching from tracker server,
+# in this case, use_storage_id must set to true in tracker.conf,
+# and storage_ids.conf must be configured correctly.
+group_name = group1
+
+# bind an address of this host
+# empty for bind all addresses of this host
+bind_addr =
+
+# if bind an address of this host when connect to other servers
+# (this storage server as a client)
+# true for binding the address configured by the above parameter: "bind_addr"
+# false for binding any address of this host
+client_bind = true
+
+# the storage server port
+port = 23000
+
+# connect timeout in seconds
+# default value is 30
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds for send and recv
+# default value is 30
+network_timeout = 60
+
+# the heart beat interval in seconds
+# the storage server send heartbeat to tracker server periodically
+# default value is 30
+heart_beat_interval = 30
+
+# disk usage report interval in seconds
+# the storage server send disk usage report to tracker server periodically
+# default value is 300
+stat_report_interval = 60
+
+# the base path to store data and log files
+# NOTE: the binlog files maybe are large, make sure
+# the base path has enough disk space,
+# eg. the disk free space should > 50GB
+base_path = /data/fastdfs_data
+
+# max concurrent connections the server supported,
+# you should set this parameter larger, eg. 10240
+# default value is 256
+max_connections = 1024
+
+# the buff size to recv / send data from/to network
+# this parameter must more than 8KB
+# 256KB or 512KB is recommended
+# default value is 64KB
+# since V2.00
+buff_size = 256KB
+
+# accept thread count
+# default value is 1 which is recommended
+# since V4.07
+accept_threads = 1
+
+# work thread count
+# work threads to deal network io
+# default value is 4
+# since V2.00
+work_threads = 4
+
+# if disk read / write separated
+## false for mixed read and write
+## true for separated read and write
+# default value is true
+# since V2.00
+disk_rw_separated = true
+
+# disk reader thread count per store path
+# for mixed read / write, this parameter can be 0
+# default value is 1
+# since V2.00
+disk_reader_threads = 1
+
+# disk writer thread count per store path
+# for mixed read / write, this parameter can be 0
+# default value is 1
+# since V2.00
+disk_writer_threads = 1
+
+# when no entry to sync, try read binlog again after X milliseconds
+# must > 0, default value is 200ms
+sync_wait_msec = 50
+
+# after sync a file, usleep milliseconds
+# 0 for sync successively (never call usleep)
+sync_interval = 0
+
+# storage sync start time of a day, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+sync_start_time = 00:00
+
+# storage sync end time of a day, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+sync_end_time = 23:59
+
+# write to the mark file after sync N files
+# default value is 500
+write_mark_file_freq = 500
+
+# disk recovery thread count
+# default value is 1
+# since V6.04
+disk_recovery_threads = 3
+
+# store path (disk or mount point) count, default value is 1
+store_path_count = 1
+
+# store_path#, based on 0, to configure the store paths to store files
+# if store_path0 not exists, it's value is base_path (NOT recommended)
+# the paths must be exist.
+#
+# IMPORTANT NOTE:
+# the store paths' order is very important, don't mess up!!!
+# the base_path should be independent (different) of the store paths
+
+store_path0 = /data/fastdfs/upload/path0
+#store_path1 = /home/yuqing/fastdfs2
+
+# subdir_count * subdir_count directories will be auto created under each
+# store_path (disk), value can be 1 to 256, default value is 256
+subdir_count_per_path = 256
+
+# tracker_server can ocur more than once for multi tracker servers.
+# the value format of tracker_server is "HOST:PORT",
+# the HOST can be hostname or ip address,
+# and the HOST can be dual IPs or hostnames seperated by comma,
+# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
+# or two different types of inner (intranet) IPs.
+# for example: 192.168.2.100,122.244.141.46:22122
+# another eg.: 192.168.1.10,172.17.4.21:22122
+
+tracker_server = 192.168.209.121:22122
+tracker_server = 192.168.209.122:22122
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+#unix group name to run this program,
+#not set (empty) means run by the group of current user
+run_by_group =
+
+#unix username to run this program,
+#not set (empty) means run by current user
+run_by_user =
+
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" (only one asterisk) means match all ip addresses
+# we can use CIDR ips like 192.168.5.64/26
+# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
+# for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+# allow_hosts=192.168.5.64/26
+allow_hosts = *
+
+# the mode of the files distributed to the data path
+# 0: round robin(default)
+# 1: random, distributted by hash code
+file_distribute_path_mode = 0
+
+# valid when file_distribute_to_path is set to 0 (round robin).
+# when the written file count reaches this number, then rotate to next path.
+# rotate to the first path (00/00) after the last path (such as FF/FF).
+# default value is 100
+file_distribute_rotate_count = 100
+
+# call fsync to disk when write big file
+# 0: never call fsync
+# other: call fsync when written bytes >= this bytes
+# default value is 0 (never call fsync)
+fsync_after_written_bytes = 0
+
+# sync log buff to disk every interval seconds
+# must > 0, default value is 10 seconds
+sync_log_buff_interval = 1
+
+# sync binlog buff / cache to disk every interval seconds
+# default value is 60 seconds
+sync_binlog_buff_interval = 1
+
+# sync storage stat info to disk every interval seconds
+# default value is 300 seconds
+sync_stat_file_interval = 300
+
+# thread stack size, should >= 512KB
+# default value is 512KB
+thread_stack_size = 512KB
+
+# the priority as a source server for uploading file.
+# the lower this value, the higher its uploading priority.
+# default value is 10
+upload_priority = 10
+
+# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
+# multi aliases split by comma. empty value means auto set by OS type
+# default values is empty
+if_alias_prefix =
+
+# if check file duplicate, when set to true, use FastDHT to store file indexes
+# 1 or yes: need check
+# 0 or no: do not check
+# default value is 0
+check_file_duplicate = 0
+
+# file signature method for check file duplicate
+## hash: four 32 bits hash code
+## md5: MD5 signature
+# default value is hash
+# since V4.01
+file_signature_method = hash
+
+# namespace for storing file indexes (key-value pairs)
+# this item must be set when check_file_duplicate is true / on
+key_namespace = FastDFS
+
+# set keep_alive to 1 to enable persistent connection with FastDHT servers
+# default value is 0 (short connection)
+keep_alive = 0
+
+# you can use "#include filename" (not include double quotes) directive to
+# load FastDHT server list, when the filename is a relative path such as
+# pure filename, the base path is the base path of current/this config file.
+# must set FastDHT server list when check_file_duplicate is true / on
+# please see INSTALL of FastDHT for detail
+##include /home/yuqing/fastdht/conf/fdht_servers.conf
+
+# if log to access log
+# default value is false
+# since V4.00
+use_access_log = false
+
+# if rotate the access log every day
+# default value is false
+# since V4.00
+rotate_access_log = false
+
+# rotate access log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.00
+access_log_rotate_time = 00:00
+
+# if compress the old access log by gzip
+# default value is false
+# since V6.04
+compress_old_access_log = false
+
+# compress the access log days before
+# default value is 1
+# since V6.04
+compress_access_log_days_before = 7
+
+# if rotate the error log every day
+# default value is false
+# since V4.02
+rotate_error_log = false
+
+# rotate error log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.02
+error_log_rotate_time = 00:00
+
+# if compress the old error log by gzip
+# default value is false
+# since V6.04
+compress_old_error_log = false
+
+# compress the error log days before
+# default value is 1
+# since V6.04
+compress_error_log_days_before = 7
+
+# rotate access log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_access_log_size = 0
+
+# rotate error log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_error_log_size = 0
+
+# keep days of the log files
+# 0 means do not delete old log files
+# default value is 0
+log_file_keep_days = 0
+
+# if skip the invalid record when sync file
+# default value is false
+# since V4.02
+file_sync_skip_invalid_record = false
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = true
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# if compress the binlog files by gzip
+# default value is false
+# since V6.01
+compress_binlog = true
+
+# try to compress binlog time, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 01:30
+# since V6.01
+compress_binlog_time = 01:30
+
+# if check the mark of store path to prevent confusion
+# recommend to set this parameter to true
+# if two storage servers (instances) MUST use a same store path for
+# some specific purposes, you should set this parameter to false
+# default value is true
+# since V6.03
+check_store_path_mark = true
+
+# use the ip address of this storage server if domain_name is empty,
+# else this domain name will ocur in the url redirected by the tracker server
+http.domain_name =
+
+# the port of the web server on this storage server
+http.server_port = 8888
+
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/storage_ids.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/storage_ids.conf
new file mode 100644
index 0000000..adc3019
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/storage_ids.conf
@@ -0,0 +1,16 @@
+#
+#
+# id is a natural number (1, 2, 3 etc.),
+# 6 bits of the id length is enough, such as 100001
+#
+# storage ip or hostname can be dual IPs seperated by comma,
+# one is an inner (intranet) IP and another is an outer (extranet) IP,
+# or two different types of inner (intranet) IPs
+# for example: 192.168.2.100,122.244.141.46
+# another eg.: 192.168.1.10,172.17.4.21
+#
+# the port is optional. if you run more than one storaged instances
+# in a server, you must specified the port to distinguish different instances.
+
+#100001 group1 192.168.0.196
+#100002 group1 192.168.0.197
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/tracker.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/tracker.conf
new file mode 100644
index 0000000..3112c24
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/conf/tracker.conf
@@ -0,0 +1,329 @@
+# is this config file disabled
+# false for enabled
+# true for disabled
+disabled = false
+
+# bind an address of this host
+# empty for bind all addresses of this host
+bind_addr =
+
+# the tracker server port
+port = 22122
+
+# connect timeout in seconds
+# default value is 30
+# Note: in the intranet network (LAN), 2 seconds is enough.
+connect_timeout = 5
+
+# network timeout in seconds for send and recv
+# default value is 30
+network_timeout = 60
+
+# the base path to store data and log files
+base_path = /data/fastdfs_data
+
+# max concurrent connections this server support
+# you should set this parameter larger, eg. 10240
+# default value is 256
+max_connections = 1024
+
+# accept thread count
+# default value is 1 which is recommended
+# since V4.07
+accept_threads = 1
+
+# work thread count
+# work threads to deal network io
+# default value is 4
+# since V2.00
+work_threads = 4
+
+# the min network buff size
+# default value 8KB
+min_buff_size = 8KB
+
+# the max network buff size
+# default value 128KB
+max_buff_size = 128KB
+
+# the method for selecting group to upload files
+# 0: round robin
+# 1: specify group
+# 2: load balance, select the max free space group to upload file
+store_lookup = 2
+
+# which group to upload file
+# when store_lookup set to 1, must set store_group to the group name
+store_group = group2
+
+# which storage server to upload file
+# 0: round robin (default)
+# 1: the first server order by ip address
+# 2: the first server order by priority (the minimal)
+# Note: if use_trunk_file set to true, must set store_server to 1 or 2
+store_server = 0
+
+# which path (means disk or mount point) of the storage server to upload file
+# 0: round robin
+# 2: load balance, select the max free space path to upload file
+store_path = 0
+
+# which storage server to download file
+# 0: round robin (default)
+# 1: the source storage server which the current file uploaded to
+download_server = 0
+
+# reserved storage space for system or other applications.
+# if the free(available) space of any stoarge server in
+# a group <= reserved_storage_space, no file can be uploaded to this group.
+# bytes unit can be one of follows:
+### G or g for gigabyte(GB)
+### M or m for megabyte(MB)
+### K or k for kilobyte(KB)
+### no unit for byte(B)
+### XX.XX% as ratio such as: reserved_storage_space = 10%
+reserved_storage_space = 10%
+
+#standard log level as syslog, case insensitive, value list:
+### emerg for emergency
+### alert
+### crit for critical
+### error
+### warn for warning
+### notice
+### info
+### debug
+log_level = info
+
+#unix group name to run this program,
+#not set (empty) means run by the group of current user
+run_by_group=
+
+#unix username to run this program,
+#not set (empty) means run by current user
+run_by_user =
+
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" (only one asterisk) means match all ip addresses
+# we can use CIDR ips like 192.168.5.64/26
+# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
+# for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+# allow_hosts=192.168.5.64/26
+allow_hosts = *
+
+# sync log buff to disk every interval seconds
+# default value is 10 seconds
+sync_log_buff_interval = 1
+
+# check storage server alive interval seconds
+check_active_interval = 120
+
+# thread stack size, should >= 64KB
+# default value is 256KB
+thread_stack_size = 256KB
+
+# auto adjust when the ip address of the storage server changed
+# default value is true
+storage_ip_changed_auto_adjust = true
+
+# storage sync file max delay seconds
+# default value is 86400 seconds (one day)
+# since V2.00
+storage_sync_file_max_delay = 86400
+
+# the max time of storage sync a file
+# default value is 300 seconds
+# since V2.00
+storage_sync_file_max_time = 300
+
+# if use a trunk file to store several small files
+# default value is false
+# since V3.00
+use_trunk_file = false
+
+# the min slot size, should <= 4KB
+# default value is 256 bytes
+# since V3.00
+slot_min_size = 256
+
+# the max slot size, should > slot_min_size
+# store the upload file to trunk file when it's size <= this value
+# default value is 16MB
+# since V3.00
+slot_max_size = 1MB
+
+# the alignment size to allocate the trunk space
+# default value is 0 (never align)
+# since V6.05
+# NOTE: the larger the alignment size, the less likely of disk
+# fragmentation, but the more space is wasted.
+trunk_alloc_alignment_size = 256
+
+# if merge contiguous free spaces of trunk file
+# default value is false
+# since V6.05
+trunk_free_space_merge = true
+
+# if delete / reclaim the unused trunk files
+# default value is false
+# since V6.05
+delete_unused_trunk_files = false
+
+# the trunk file size, should >= 4MB
+# default value is 64MB
+# since V3.00
+trunk_file_size = 64MB
+
+# if create trunk file advancely
+# default value is false
+# since V3.06
+trunk_create_file_advance = false
+
+# the time base to create trunk file
+# the time format: HH:MM
+# default value is 02:00
+# since V3.06
+trunk_create_file_time_base = 02:00
+
+# the interval of create trunk file, unit: second
+# default value is 38400 (one day)
+# since V3.06
+trunk_create_file_interval = 86400
+
+# the threshold to create trunk file
+# when the free trunk file size less than the threshold,
+# will create he trunk files
+# default value is 0
+# since V3.06
+trunk_create_file_space_threshold = 20G
+
+# if check trunk space occupying when loading trunk free spaces
+# the occupied spaces will be ignored
+# default value is false
+# since V3.09
+# NOTICE: set this parameter to true will slow the loading of trunk spaces
+# when startup. you should set this parameter to true when neccessary.
+trunk_init_check_occupying = false
+
+# if ignore storage_trunk.dat, reload from trunk binlog
+# default value is false
+# since V3.10
+# set to true once for version upgrade when your version less than V3.10
+trunk_init_reload_from_binlog = false
+
+# the min interval for compressing the trunk binlog file
+# unit: second, 0 means never compress
+# FastDFS compress the trunk binlog when trunk init and trunk destroy
+# recommand to set this parameter to 86400 (one day)
+# default value is 0
+# since V5.01
+trunk_compress_binlog_min_interval = 86400
+
+# the interval for compressing the trunk binlog file
+# unit: second, 0 means never compress
+# recommand to set this parameter to 86400 (one day)
+# default value is 0
+# since V6.05
+trunk_compress_binlog_interval = 86400
+
+# compress the trunk binlog time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 03:00
+# since V6.05
+trunk_compress_binlog_time_base = 03:00
+
+# max backups for the trunk binlog file
+# default value is 0 (never backup)
+# since V6.05
+trunk_binlog_max_backups = 7
+
+# if use storage server ID instead of IP address
+# if you want to use dual IPs for storage server, you MUST set
+# this parameter to true, and configure the dual IPs in the file
+# configured by following item "storage_ids_filename", such as storage_ids.conf
+# default value is false
+# since V4.00
+use_storage_id = false
+
+# specify storage ids filename, can use relative or absolute path
+# this parameter is valid only when use_storage_id set to true
+# since V4.00
+storage_ids_filename = storage_ids.conf
+
+# id type of the storage server in the filename, values are:
+## ip: the ip address of the storage server
+## id: the server id of the storage server
+# this paramter is valid only when use_storage_id set to true
+# default value is ip
+# since V4.03
+id_type_in_filename = id
+
+# if store slave file use symbol link
+# default value is false
+# since V4.01
+store_slave_file_use_link = false
+
+# if rotate the error log every day
+# default value is false
+# since V4.02
+rotate_error_log = false
+
+# rotate error log time base, time format: Hour:Minute
+# Hour from 0 to 23, Minute from 0 to 59
+# default value is 00:00
+# since V4.02
+error_log_rotate_time = 00:00
+
+# if compress the old error log by gzip
+# default value is false
+# since V6.04
+compress_old_error_log = false
+
+# compress the error log days before
+# default value is 1
+# since V6.04
+compress_error_log_days_before = 7
+
+# rotate error log when the log file exceeds this size
+# 0 means never rotates log file by log file size
+# default value is 0
+# since V4.02
+rotate_error_log_size = 0
+
+# keep days of the log files
+# 0 means do not delete old log files
+# default value is 0
+log_file_keep_days = 0
+
+# if use connection pool
+# default value is false
+# since V4.05
+use_connection_pool = true
+
+# connections whose the idle time exceeds this time will be closed
+# unit: second
+# default value is 3600
+# since V4.05
+connection_pool_max_idle_time = 3600
+
+# HTTP port on this tracker server
+http.server_port = 8080
+
+# check storage HTTP server alive interval seconds
+# <= 0 for never check
+# default value is 30
+http.check_alive_interval = 30
+
+# check storage HTTP server alive type, values are:
+# tcp : connect to the storge server with HTTP port only,
+# do not request and get response
+# http: storage check alive url must return http status 200
+# default value is tcp
+http.check_alive_type = tcp
+
+# check storage HTTP server alive uri/url
+# NOTE: storage embed HTTP server support uri: /status.html
+http.check_alive_uri = /status.html
+
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/nginx_conf/nginx.conf b/docker/dockerfile_local-v6.0.9/fastdfs-conf/nginx_conf/nginx.conf
new file mode 100644
index 0000000..2abee9b
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/nginx_conf/nginx.conf
@@ -0,0 +1,33 @@
+worker_processes 1;
+worker_rlimit_nofile 65535; #务必先修改服务器的max open files 数。
+
+error_log /data/fastdfs_data/logs/nginx-error.log;
+
+events {
+ use epoll; #服务器若是Linux 2.6+,你应该使用epoll。
+ worker_connections 65535;
+}
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ access_log /data/fastdfs_data/logs/nginx-access.log main;
+ sendfile on;
+ keepalive_timeout 65;
+
+ gzip on;
+ gzip_min_length 2k;
+ gzip_buffers 8 32k;
+ gzip_http_version 1.1;
+ gzip_comp_level 2;
+ gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
+ gzip_vary on;
+
+ include /usr/local/nginx/conf.d/*.conf;
+
+}
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs-conf/setting_conf.sh b/docker/dockerfile_local-v6.0.9/fastdfs-conf/setting_conf.sh
new file mode 100644
index 0000000..272dacf
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs-conf/setting_conf.sh
@@ -0,0 +1,135 @@
+#!/bin/sh
+#
+# 用途:配置tracker \ storage的配置文件参数,liyanjing 2022.08.10
+#
+
+
+# 1. tracker 主要参数,生产环境中建议更改一下端口
+tracker_port=22122
+# 实现互备,两台tracker就够了
+tracker_server="tracker_server = 172.16.100.90:$tracker_port\ntracker_server = 172.16.100.91:$tracker_port"
+
+# 格式: ./conf/storage_ids.conf << EOF
+#
+#
+# id is a natural number (1, 2, 3 etc.),
+# 6 bits of the id length is enough, such as 100001
+#
+# storage ip or hostname can be dual IPs seperated by comma,
+# one is an inner (intranet) IP and another is an outer (extranet) IP,
+# or two different types of inner (intranet) IPs
+# for example: 192.168.2.100,122.244.141.46
+# another eg.: 192.168.1.10,172.17.4.21
+#
+# the port is optional. if you run more than one storaged instances
+# in a server, you must specified the port to distinguish different instances.
+
+#100001 group1 192.168.0.196
+#100002 group1 192.168.0.197
+$storage_ids
+
+EOF
+
+ # 设置tracker访问IP限制,避免谁都能上传文件,默认是allow_hosts = *
+ #sed -i '/^allow_hosts/{N;/^allow_hosts/s/.*/'"${allow_hosts}"'/}' ./conf/tracker.conf
+}
+
+function storage_confset() {
+
+ #storage.conf 替换参数
+ sed -i "s|^port =.*$|port = $storage_server_port|g" ./conf/storage.conf
+ sed -i "s|^group_name =.*$|group_name = $storage_group_name|g" ./conf/storage.conf
+
+ sed -i "s|^store_path_count =.*$|store_path_count = $store_path_count|g" ./conf/storage.conf
+ arr_store_path="store_path0 = /data/fastdfs/upload/path0"
+ for((i=1;i<$store_path_count;i++));
+ do
+ arr_store_path="$arr_store_path \nstore_path$i = /data/fastdfs/upload/path$i"
+ done
+
+ sed -i '/^store_path[1-9] =.*$/d' ./conf/storage.conf
+ sed -i '/^#store_path[0-9] =.*$/d' ./conf/storage.conf
+ sed -i "s|^store_path0 =.*$|$arr_store_path|g" ./conf/storage.conf
+
+ sed -i "/^tracker_server =/{N;/^tracker_server =/s/.*/$tracker_server/}" ./conf/storage.conf
+
+ #mod_fastdfs.conf 替换参数
+ sed -i "/^tracker_server/{N;/^tracker_server/s/.*/$tracker_server/}" ./conf/mod_fastdfs.conf
+ sed -i "s|^storage_server_port=.*$|storage_server_port=$storage_server_port|g" ./conf/mod_fastdfs.conf
+ sed -i "s|^group_name=.*$|group_name=$storage_group_name|g" ./conf/mod_fastdfs.conf
+ sed -i "s|^url_have_group_name =.*$|url_have_group_name = true|g" ./conf/mod_fastdfs.conf
+ sed -i "s|^store_path_count=.*$|store_path_count=$store_path_count|g" ./conf/mod_fastdfs.conf
+ sed -i '/^store_path[1-9].*/d' ./conf/mod_fastdfs.conf
+ sed -i "s|^store_path0.*|$arr_store_path|g" ./conf/mod_fastdfs.conf
+ sed -i "s|^use_storage_id =.*$|use_storage_id = true|g" ./conf/mod_fastdfs.conf
+
+ #client.conf 当需要使用fastdfs自带的客户端时,更改此文件
+ sed -i "/^tracker_server/{N;/^tracker_server/s/.*/$tracker_server/}" ./conf/client.conf
+ sed -i "s|^use_storage_id =.*$|use_storage_id = true|g" ./conf/client.conf
+
+}
+
+
+mode_number=1
+function chose_info_print() {
+ echo -e "\033[32m 请先设置好本脚本的tracker \ storage 的参数变量,然后再选择:
+ [1] 配置 tracker
+
+ [2] 配置 storage\033[0m"
+}
+
+#执行
+function run() {
+
+ #1.屏幕打印出选择项
+ chose_info_print
+
+ read -p "please input number 1 to 2: " mode_number
+ if [[ ! $mode_number =~ [0-2]+ ]]; then
+ echo -e "\033[31merror! the number you input isn't 1 to 2\n\033[0m"
+ exit 1
+ fi
+
+ #2. 执行
+ case ${mode_number} in
+ 1)
+ #echo "设置tracker"
+ tracker_confset
+ ;;
+ 2)
+ #echo "设置storage"
+ storage_confset
+ ;;
+ *)
+ echo -e "\033[31merror! the number you input isn't 1 to 2\n\033[0m"
+ ;;
+ esac
+
+ echo -e "\033[36m ${input_parameter} 配置文件设置完毕,建议人工复核一下\033[0m"
+
+}
+
+run
+
+
diff --git a/docker/dockerfile_local-v6.0.9/fastdfs自定义镜像和安装手册.txt b/docker/dockerfile_local-v6.0.9/fastdfs自定义镜像和安装手册.txt
new file mode 100644
index 0000000..9c19f51
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/fastdfs自定义镜像和安装手册.txt
@@ -0,0 +1,164 @@
+### 创建镜像
+
+参考:
+https://github.com/qbanxiaoli/fastdfs/blob/master/Dockerfile
+https://github.com/ygqygq2/fastdfs-nginx/blob/master/Dockerfile
+
+# docker build -t lyj/fastdfs:6.09-alpine .
+# docker save a3f007114480 -o /data/docker_images/lyj-fastdfs-6.09-alpine.tar
+# docker load -i /data/docker_images/lyj-fastdfs-6.09-alpine.tar && docker tag a3f007114480 lyj/fastdfs:6.09-alpine
+
+# docker build -t lyj/fastdfs:6.08-alpine .
+# docker save 646a2c0265ca -o /data/docker_images/lyj-fastdfs-6.08-alpine.tar
+# docker load -i /data/docker_images/lyj-fastdfs-6.08-alpine.tar && docker tag 646a2c0265ca lyj/fastdfs:6.08-alpine
+
+备注:可以使用centos基础镜像。
+
+### 一、tracker 部署
+
+实现互备,两台tracker就够了,生产环境中注意更换端口
+
+>[danger]推荐使用 setting_conf.sh.sh 来设置配置文件的参数,打开改脚本,修改tracker\storage的主要参数
+
+```bash
+1、创建宿主机挂载目录
+# mkdir -p /data/docker/fastdfs/tracker/{conf,data} #conf为tracker配置文件目录,data为tracker基础数据存储目录
+
+2、tracker 配置文件
++ 我挂载的配置文件目录,将部署操作说明书\fastdfs-conf\conf中的所有配置文件上传到服务器,tracker只用到tracker.conf和storage_ids.conf,其他文件不用管。
+
++ 使用 ID 取代 ip,作为storage server的标识,强烈建议使用此方式,例如方便今后的迁移。use_storage_id = false 改为true, 并在storage_ids.conf填写所有storage的id、所属组名,ip
+
++ 为了安全,可限定连接到此tracker的ip 范围,默认是allow_hosts = *
+
++ reserved_storage_space storage为系统其他应用留的空间,可以用绝对值(10 G或10240 M)或者百分比(V4开始支持百分比方式),网友说“最小阀值不要设置2%(有坑),设置5%可以”。
+ ## 同组中只要有一台服务器达到这个标准了,就不能上传文件了
+ ## no unit for byte(B) 不加单位默认是byte,例如2G=2147483648byte,reserved_storage_space = 2147483648byte
+ ## 经实践6.08版本配置百分比可以;绝对值不加单位默认byte可以;绝对值加单位报错(v6.0.9中修复了) ERROR - file: shared_func.c, line: 2449, unkown byte unit: MB, input string: 10240 MB
+ ## 预留空间配置为绝对值,数值和单位之间不能有空格。
+
+...请阅读参数说明,调优其他参数
+
+3、启动tracker容器
+# docker run -d --net=host --restart=always --name=tracker \
+-v /etc/localtime:/etc/localtime \
+-v /data/docker/fastdfs/tracker/data:/data/fastdfs_data \
+-v /data/docker/fastdfs/tracker/conf:/etc/fdfs \
+-d lyj/fastdfs:6.09-alpine tracker
+
+
+docker run -d --net=host --restart=always --name=ttmp \
+-d lyj/fastdfs:6.09-alpine tracker
+
+4、防火墙中打开tracker端口(默认的22122),生产环境中注意更换端口
+# firewall-cmd --zone=public --add-port=22122/tcp --permanent
+# firewall-cmd --reload
+
+```
+
+>去除注释和空行:egrep -v "#|^$" /data/docker/fastdfs/tracker/conf/fdfs/tracker.conf >/data/docker/fastdfs/tracker/conf/fdfs/tracker.conf.bak
+
+### 二、storage 部署
+
++ fastdfs 约定:`同组内的storage server端口必须一致,建议挂载存储目录个数、路径要相同`
+
++ 为了互相备份,一个group内有两台storage即可
+
++ fastdfs 镜像 已封装了 nginx\fastdfs扩展模块 作为web服务,向外提供http文件访问
+
+```bash
+1、创建宿主机挂载目录
+# mkdir -p /data/docker/fastdfs/storage/{conf,metadata,nginx_conf,nginx_conf.d} #conf存放storge配置文件,metadata为storage基础数据
+# mkdir -p /data/docker/fastdfs/upload/{path0,path1,path2,path3} #存储上传的文件,当有多块硬盘时,挂载到相应目录上即可 /data/fastdfs/upload/path0~n
+```
+
+>[danger]推荐使用 conf_setting.sh 来设置配置文件的参数
+
+```bash
+2、配置文件我挂载的是目录,因此将fastdfs-conf\的所有配置文件上传到服务器
+用到的配置文件:storage.conf(storage配置文件),mod_fastdfs.conf(http文件访问的扩展模块的配置文件),nginx_conf/nginx.conf 与 nginx_conf.d/default.conf(nginx的配置文件)
+
+配置文件需要调整的主要参数:
+1. storage.conf
+ group_name = group1 # 指定storage所属组
+ base_path = /data/fastdfs_data # Storage 基础数据和日志的存储目录
+ store_path_count = 1 # 上传文件存放目录的个数
+ store_path0 = /data/fastdfs/upload/path0 # 逐一配置 store_path_count 个路径,索引号基于 0。
+ tracker_server = 172.16.100.90:22122 # tracker_server 的列表 ,有多个时,每个 tracker server 写一行
+ allow_hosts = * ## 允许连接本storage server的IP地址列表,为了安全期间,可以设置。
+2. mod_fastdfs.conf
+ tracker_server = 172.16.100.90:22122 # tracker服务器的IP地址以及端口号,多个时,每个tracker server写一行
+ storage_server_port = 23000 # 本地storage的端口号,fastdfs约定"同组下的storage端口必须一致"
+ group_name = group1 # 本地storage的组名
+ url_have_group_name = true # url中是否有group名,默认是false,这个参数必须正确设置,否则文件不能被下载到
+ store_path_count = 1 # 本地storage的存储路径个数,必须和storage.conf中的配置一样
+ store_path0 = /data/fastdfs/upload/path0 #本地storage的存储路径,必须和storage.conf中的配置一样
+
+ ## 如果在此存储服务器上支持多组时,有几组就设置几组。单组为0.
+ ## 通常一台机器运行一个storage就行,没有必要运行多个group的storage,因为stroage本身支持多存储目录的
+ ## 使用docker 一个容器运行一个storage,此处就不用管了
+ group_count = 0
+ #[group1]
+ #group_name=group1
+ #storage_server_port=23000
+ #store_path_count=1
+ #store_path0=/data/fastdfs/upload/path0
+```
+```bash
+3. http.conf 当需要开启token时,更改此文件
+4. mime.types 资源的媒体类型,当文件的后缀在此文件中找不到时,需要添加。
+5. client.conf 当需要使用fastdfs自带的客户端时,更改此文件
+ tracker_server = 172.16.100.90:22122
+6. nginx_conf.d/default.conf
+ # 将http文件访问请求反向代理给扩展模块
+ location ~/group[0-9]/ {
+ ngx_fastdfs_module;
+ }
+
+# location ~ /group1/M00 {
+# alias /data/fastdfs/upload/path0;
+# ngx_fastdfs_module;
+# }
+
+
+```
+```bash
+3、启动 storage 容器
+# docker run -d --net=host --restart always --name=storage1_1 \
+--privileged=true \
+-v /etc/localtime:/etc/localtime \
+-v /data/docker/fastdfs/storage/metadata:/data/fastdfs_data \
+-v /data/docker/fastdfs/storage/conf:/etc/fdfs \
+-v /data/docker/fastdfs/upload:/data/fastdfs/upload \
+-v /data/docker/fastdfs/storage/nginx_conf/nginx.conf:/usr/local/nginx/conf/nginx.conf \
+-v /data/docker/fastdfs/storage/nginx_conf.d:/usr/local/nginx/conf.d \
+-d lyj/fastdfs:6.09-alpine storage
+
+防火墙中打开storage服务端口(默认的23000,生产环境中注意更换端口),nginx的端口9088
+# firewall-cmd --zone=public --add-port=23000/tcp --permanent
+# firewall-cmd --zone=public --add-port=9088/tcp --permanent
+# firewall-cmd --reload
+
+4、 查看下集群运行状态
+# docker exec -it storage1_1 sh
+# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
+
+文件访问:http://172.16.100.90:9088/group1/M00/00/00/oYYBAGMi4zGAYNoxABY-esN9nNw502.jpg
+```
+
+文件上传demo《E:\gitplace\springboot-fastdfs》
+
+5、nginx 日期定期切分和过期清理
+生产环境中一般会在storage nginx前再加一层代理,我这里设置access_log off; 不记录日志了,调试时可以打开。
+
+...
+
+6、http 文件访问 负载入口高可用
+nginx + keepalived
+nginx反向代理storage文件的配置:《E:\工具箱\08. docker\3.docker_container_install\nginx\(lvs-webpage-api-oss)default.conf》
+
+7、扩展,增加storage
+ 1. 若使用了storage_ids.conf,则需要修改所有的tracker的storage_ids.conf,填写一行 storage id,注意奥"要重启tracker才能生效"。
+ 2. storage 部署,见上面。
+
+8、使用shell脚本调client 删除历史文件
\ No newline at end of file
diff --git a/docker/dockerfile_local-v6.0.9/qa.txt b/docker/dockerfile_local-v6.0.9/qa.txt
new file mode 100644
index 0000000..614c82e
--- /dev/null
+++ b/docker/dockerfile_local-v6.0.9/qa.txt
@@ -0,0 +1,141 @@
+fastdfs源自bbs论坛的问题整理:http://bbs.chinaunix.net/forum-240-1.html
+
+##### Q0、上传文件,如何选择存储地址的?
+
+tracker是各协调器, 是如何查询存储地址返回给客户端的?请阅读《fastdfs\1、fastdf配置文件参数解释\tracker.conf参数说明.txt》
+
+```bash
+1. client上传文件 <--指定\不指定group--> tracker{选择group ---> 选择 group 中的哪台storage --->选择storage server 中的哪个目录}
+
+2. Client拿着地址直接和对应的Storage通讯,将文件上传到该Storage。
+```
+>[danger]备注:tracker.conf中的 reserved_storage_space 参数是storage为系统、其他应用保留的空间,若空间不足,则上传失败。
+
+
+##### Q1、fastdfs的版本号如何查看
+/usr/bin/fdfs_monitor /etc/fdfs/storage.conf 或打开tracker的基础数据存储文件storage_servers_new.dat
+
+##### Q2、同一个集群内,相互关系
+- cluster里每个tracker之间是完全对等的,所有的tracker都接受stroage的心跳信息,生成元数据信息来提供读写服务。
+> 2.03以后,tracker server之间会有通信。比如解决: 新增加一台tracker server时,新的tracker server会自动向老的tracker server获取系统数据文件。。
+- 同组内的storage server之间,都是对等关系,不存在主从关系。
+- 组与组之间的storage都是独立的,不同组的storage server之间不会相互通信。
+
+---
+##### Q3、备份机制
+FastDFS采用了分组存储,一个组可以由一台或多台storage存储服务器组成,同组内的storage文件都是相同的,组中的多台storage服务器起到相互备份和负载均衡的作用。
+
+---
+##### Q4、storage和组的对应关系
+一个storage只能属于一个group,组名在storage server上配置,由storage server主动向tracker server报告其组名和存储空间等信息。
+
+---
+##### Q5、storage 能连接几个tracker
+在storage server上配置它要连接的tracker server,可以配置1个或多个。 当storage配置连接2个以上tracker时,tracker群起到负载均衡作用。
+
+>备注:storage server的信息在tracker上全部缓存到内存中的,支持的分组数,理论上取决于tracker server的内存大小。所以支持上千上万个组没有一点问题。
+
+>[danger]提醒:在一个集群中,正确的做法是“storage应连接所有的tracker” 万一有个别storage server没有绑定所有tracker server,也不会出现问题。
+
+---
+##### Q6、一台机器上运行几个storage
+通常一台机器只启动一个storage节点(即跑一个group);根据服务器情况(比如多磁盘挂载)、或文件要隔离存储时,可以运行多个storage,但是没必要,因为storage支持多目录挂载.
+
+>[danger]注意: 同集群内,同组下的storage 端口好必须相同,因此单台上只能运行属于不同组的storage.
+---
+##### Q7、一台机器上多个磁盘时,如何使用
+如果我一台机器多个硬盘挂到不同的目录,不要做RAID,每个硬盘作为一个mount point,直接挂载单盘使用即可
+- 可以按一个组,运行一个storage,设置多个store_path(索引从0开始)对应不同的磁盘目录。--->推荐
+- 也按多个组使用,即运行多个storage,每个组管理一个硬盘(mount point)。--->没必要这样做,因为storage已经可以管理多块硬盘了
+
+> 备注:storage server支持多个路径(例如磁盘)存放文件,为了提高IO性能,不同的磁盘可能挂不同的目录
+
+---
+
+##### Q8、同组内的storage服务器的空间大小不一样时,会出现什么问题
+同一个卷的存储空间以group内容量最小的storage为准,所以建议同一个GROUP中的多个storage尽量配置相同,即**store_path_count个数、存放文件的目录磁盘大小要相同,目录名称可以不相同**。
+ > 论坛帖子:若同一个卷下的各storage配置不同,某个服务器有空间,但是不能再上传文件的现象。http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1941456&extra=page%3D1%26filter%3Ddigest%26digest%3D1
+
+---
+##### Q9、每个目录下存放的文件数有限制吗。
+没有限制,能不能上传取决于剩余空间。
+> 备注:storage的缺省情况下,**每个目录下存放100个文件,然后就轮转到下一个目录, 到最后一个目录data/FF/FF后,会跳会第一个目录**。
+- subdir_count_per_path =256,storage server在初次运行时,会在store_path0~n\data\目录下,自动创建 N * N 个存放文件的子目录。
+- file_distribute_path_mode配置为0(轮流存放方式),file_distribute_rotate_count = 100,当一个目录下的文件存放的文件数达到本参数值时,后续上传的文件存储到下一个目录中。
+
+##### Q10、tracker、storage和client配置文件中的http.server_port还要配置吗
+不用理会这个配置项,HTTP访问文件请使用外部的web server.
+>[danger] 备注:
+- fastdfs内置的web server从4.0.5版本就移除了(因为之前自带的HTTP服务较为简单,无法提供负载均衡等高性能服务),而是使用外部web server(apache和nginx)提供http文件访问服务。
+- 为了解决文件同步延迟的问题,apache或nginx上需要使用FastDFS提供的扩展模块,如nginx的fastdfs-nginx-module
+- 在每台storage server上部署web server,直接对外提供HTTP服务
+- tracker server上不需要部署web server
+
+##### Q11、如何防盗链
+通过token的方式来实现的防盗链。原贴地址:http://bbs.chinaunix.net/thread-1916999-1-1.html
+看一下配置文件 mod_fastdfs.conf,里面包含了http.conf,在http.conf中进行防盗链相关设置。
+
+##### Q12、“海量”小文件会导致文件系统性能急剧下降,请问这里的“海量”大致在什么级别
+出于性能考虑,我觉得单台机器存储的文件数不要超过1千万吧。
+> [点击查看原贴地址](点击查看原贴地址:http://bbs.chinaunix.net/thread-2328826-1-48.html "点击查看原贴地址"), 3.0的计划中,提到“海量”小文件会导致文件系统性能急剧下降,乃至崩溃。请问这里的“海量”大致在什么级别,通过扩展主机(不仅仅是磁盘)是否可以解决“海量”小文件带来的性能瓶颈?
+
+##### Q13、FastDFS扩展模块(fastdfs-nginx-module)支持断点续传吗
+
+版本V1.08,增加了支持断点续传
+
+##### Q14、配置了Nginx的FDFS扩展模块,可以通过nginx访问文件,mod_fastdfs.conf中的tracker_server配置项有什么作用?
+
+扩展模块在web server启动时,连接tracker server,以获得2个配置参数,
+如果连不上时或者获取失败,会使用缺省值:
++ storage_sync_file_max_delay:文件同步的最大延迟,缺省为1天
++ storage_sync_file_max_time:同步单个文件需要的最大时间,缺省为5分钟。
+
+##### Q15、扩展模块有哪些注意事项
+配置文件/etc/fdfs/mod_fastdfs.conf,参数url_have_group_name:URL中是否包含了group name。这个参数必须正确设置,否则文件不能被下载到
+
+##### Q16、FastDFS是否支持文件修改呢?
+V3.08开始支持文件修改了。
+
+##### Q17、如果你需要相同文件内容的文件只保存一份时,怎么办?
+
+结合FastDHT使用,http://localhost:8181/docs/fastdfs/fastdfs-1dtfs5fe93h60
+
+##### Q18、只要知道tracker的服务器IP和端口,任何都可以使用api上传文件,这样是否会有恶意上传的问题
+
+可以指定访问限制,tracker.conf,storage.conf,添加访问IP限制:(例)
+```bash
+# allow_hosts can ocur more than once, host can be hostname or ip address,
+# "*" means match all ip addresses, can use range like this: 10.0.1.[1-15,20] or
+# host[01-08,20-25].domain.com, for example:
+# allow_hosts=10.0.1.[1-15,20]
+# allow_hosts=host[01-08,20-25].domain.com
+#allow_hosts=*
+allow_hosts=222.222.222.[152-154]
+allow_hosts=111.111.111.111
+
+```
+Q19、部署哪些事项要注意?
+
+0. tracker 只管理集群拓扑数据,不存储任何文件索引,对硬件配置要求较低,为了实现互备,**两台tracker就够了。若集群规模较小,可复用storage机器**
+
+1. 在tracker的配置文件tracker.conf中设置好预留合适的空间.
+
+2. fastdfs存储文件是直接基于操作系统的文件系统的,**storage的性能瓶颈通常表现在磁盘IO**。为了充分利用文件系统的cache已加快文件访问,**推荐storage配置较大内存**,尤其在众多热点文件的场合下,大量IO吞吐也会消耗cpu
+
+3. storage,为了互相备份,**一个group内有两台storage即可**
+
+4. storage 为了充分利用磁盘,推荐不做RAID,直接挂载单块硬盘,每块硬盘mount为一个路径,作为storage的一个store_path。
+
+5. **同组内的storage 端口号必须相同**,建议挂载存储个数相同、空间大小相同;同一主机上可以运行多个不同组的storage.
+
+6. 同组内的storage 若有多个tracker,应当配置上所有的tracker地址
+
+7. fastdfs从4.0.5开始去除了http文件下载功能,需要外部的web server,为了解决文件同步延迟的问题,apache或nginx上需要使用FastDFS提供的扩展模块,如nginx的fastdfs-nginx-module
+ - 在每台storage server上部署web server,直接对外提供HTTP服务
+ - tracker server上不需要部署web server
+ - 每个组必须有一个nginx,提供http文件访问服务.
+
+8. 海量小文件场景,建议使用文件合并存储特性,在tracker.conf 设置 use_trunck_file=true,**如果一个group存储的文件数不超过一千万,就没有必要使用这个特性**。
+
+9. 为了避免不必要的干扰集群安全考虑,**建议使用storage server id 方式。** tracker.conf 设置 use_storage_id=true 并在storage_ids.conf填写所有storage的id、所属组名,ip。这样做迁移很容易。
+