• 【Linux-Minio】安装部署文档(含单节点多盘、多节点多盘【TLS+Nginx负载均衡】、省市代码)


    A.单节点多驱动器(SNMD)

    1.下载

    wget https://dl.min.io/server/minio/release/linux-amd64/minio
    
    • 1

    2.安装前的准备

    至少4个空磁盘

    2.1.查看所有磁盘

    fdisk -l
    
    • 1

    2.2.分区(可选操作)

    1)2T以内用fdisk分区(输入n/p/2048/20971519/w)
    fdisk /dev/sdb
    fdisk /dev/sdc
    fdisk /dev/sdd
    fdisk /dev/sde
    
    • 1
    • 2
    • 3
    • 4
    2)2T以上用gdisk分区(输入n/w/Y)
    yum install -y gdisk
    
    gdisk /dev/sdb
    gdisk /dev/sdc
    gdisk /dev/sdd
    gdisk /dev/sde
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.3.格式化

    mkfs.xfs /dev/sdb -L DISK1
    mkfs.xfs /dev/sdc -L DISK2
    mkfs.xfs /dev/sdd -L DISK3
    mkfs.xfs /dev/sde -L DISK4
    
    • 1
    • 2
    • 3
    • 4

    2.4.创建挂载点

    mkdir -p /mnt/disk1
    mkdir -p /mnt/disk2
    mkdir -p /mnt/disk3
    mkdir -p /mnt/disk4
    
    • 1
    • 2
    • 3
    • 4

    2.5.编辑 /etc/fstab, 写入文件

    nano /etc/fstab
    
    • 1

    写入以下内容

    #                  
    LABEL=DISK1      /mnt/disk1     xfs     defaults,noatime  0       2
    LABEL=DISK2      /mnt/disk2     xfs     defaults,noatime  0       2
    LABEL=DISK3      /mnt/disk3     xfs     defaults,noatime  0       2
    LABEL=DISK4      /mnt/disk4     xfs     defaults,noatime  0       2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.6.挂载

    source /etc/fstab
    
    • 1

    或者

    mount /dev/sdb /mnt/disk1
    mount /dev/sdc /mnt/disk2
    mount /dev/sdd /mnt/disk3
    mount /dev/sde /mnt/disk4
    
    • 1
    • 2
    • 3
    • 4

    2.7.检查

    列出所有可用块设备的信息,同时还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息

    lsblk
    
    • 1

    2.*. 卸载(忽略)

    umount /dev/sdb /mnt/disk1
    umount /dev/sdc /mnt/disk2
    umount /dev/sdd /mnt/disk3
    umount /dev/sde /mnt/disk4
    
    • 1
    • 2
    • 3
    • 4

    2.8.安装minio

    2.8.1.将下载的minio文件, 迁移到linux服务器上

    可以使用Xftp工具

    2.8.2.将minio文件放到 /usr/local/bin/ 文件夹中
    mv minio /usr/local/bin/
    
    • 1
    2.8.3.赋予文件执行权限
    chmod +x minio
    
    • 1
    2.8.4.创建systemd服务文件

    minio.service文件,放到/etc/systemd/system文件夹下

    minio.service

    #
    # systemd service file for MinIO Server forking server
    # path: /etc/systemd/system/minio.service
    #
    [Unit]
    Description=MinIO
    Documentation=https://min.io/docs/minio/linux/index.html
    Wants=network-online.target
    After=network-online.target
    AssertFileIsExecutable=/usr/local/bin/minio
    
    [Service]
    WorkingDirectory=/usr/local
    
    User=minio-user
    Group=minio-user
    ProtectProc=invisible
    
    EnvironmentFile=-/etc/default/minio
    ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
    ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
    # # 2>&1是将标准错误输出重定向到标准输出
    #ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES > /var/minio/minio.log 2>&1
    
    
    # # 指定后台端口为9999
      #./minio server --address 0.0.0.0:9000 --console-address 0.0.0.0:36953 /data/minio/data > /data/minio/minio.log 2>&1 &
    
    # Let systemd restart this service always
    Restart=always
    
    # Specifies the maximum file descriptor number that can be opened by this process
    LimitNOFILE=65536
    
    # Specifies the maximum number of threads this process can create
    TasksMax=infinity
    
    # Disable timeout logic and wait until process is stopped
    TimeoutStopSec=infinity
    SendSIGKILL=no
    
    [Install]
    WantedBy=multi-user.target
    
    # Built for ${project.name}-${project.version} (${project.name})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    2.8.5.创建用户和组

    默认情况下,minio.service文件以minio-user用户和组运行

    groupadd -r minio-user
    useradd -M -r -g minio-user minio-user
    chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4
    
    • 1
    • 2
    • 3
    2.8.6.创建环境变量文件

    /etc/default/minio创建环境变量文件minio

    # MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
    # This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
    # Omit to use the default values 'minioadmin:minioadmin'.
    # MinIO recommends setting non-default values as a best practice, regardless of environment.
    
    MINIO_ROOT_USER=minioadmin
    MINIO_ROOT_PASSWORD=minioadmin
    
    # MINIO_VOLUMES sets the storage volumes or paths to use for the MinIO server.
    # The specified path uses MinIO expansion notation to denote a sequential series of drives between 1 and 4, inclusive.
    # All drives or paths included in the expanded drive list must exist *and* be empty or freshly formatted for MinIO to start successfully.
    
    MINIO_VOLUMES="/mnt/disk{1...4}"
    
    # MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server.
    # MinIO assumes your network control plane can correctly resolve this hostname to the local machine.
    
    # Uncomment the following line and replace the value with the correct hostname for the local machine.
    
    #MINIO_SERVER_URL="http://minio.example.net"
    
    # 自定义端口9000是指定api端口,36953是指定web管理端口
    # MINIO_OPTS="--address 0.0.0.0:9000 --console-address 0.0.0.0:36953"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    2.8.7.启动MinIO服务
    sudo systemctl enable minio.service
    sudo systemctl start minio.service
    
    • 1
    • 2
    2.8.8.确认服务处于联机状态
    sudo systemctl status minio.service
    journalctl -f -u minio.service
    
    • 1
    • 2

    2.9.minio 警告说明

    2.9.1.Host local has more than 2 drives of set. A host failure will result in data becoming unavailable.

    minio server警告我们:这个erasure coding set中有多于两个的drive都在local host上,这样一旦host宕机,那么数据将无法获取。(每个set 有4个drive,根据纠删码的机制,这个set的最大允许失效的disk数量为4/2=2)

    2.9.2.Detected default credentials ‘minioadmin:minioadmin’, we recommend that you change these values with ‘MINIO_ROOT_USER’ and ‘MINIO_ROOT_PASSWORD’ environment variables

    minio server警告我们:不要使用默认值,有安全风险

    2.10.开启防火墙端口(默认)

    1) 9000是api服务端口
    firewall-cmd --zone=public --add-port=9000/tcp --permanent
    
    • 1
    2) 36953是web管理端口
    firewall-cmd --zone=public --add-port=36953/tcp --permanent
    
    • 1
    3) 重启防火墙

    firewall-cmd --reload

    2.11.浏览器访问测试

    http://IP:9000

    B.多节点多驱动器(SNMD)

    1.下载

    wget https://dl.min.io/server/minio/release/linux-amd64/minio
    
    • 1

    2.安装前的准备

    每台机器至少有4块空磁盘

    2.1.开启时间同步

    yum -y install ntp
    systemctl enable ntpd
    systemctl start ntpd
    timedatectl set-ntp yes
    ntpdate -u cn.pool.ntp.org
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    # 查看当前系统时间,并实时刷新
    watch -n 1 date
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.每台服务器都执行以下步骤

    3.1.查看所有磁盘

    fdisk -l
    
    • 1

    3.2.分区(可选操作)

    1)2T以内用fdisk分区(输入n/p/2048/20971519/w)
    fdisk /dev/sdb
    fdisk /dev/sdc
    fdisk /dev/sdd
    fdisk /dev/sde
    
    • 1
    • 2
    • 3
    • 4
    2)2T以上用gdisk分区(输入n/w/Y)
    yum install -y gdisk
    
    gdisk /dev/sdb
    gdisk /dev/sdc
    gdisk /dev/sdd
    gdisk /dev/sde
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.3.格式化

    mkfs.xfs /dev/sdb -L DISK1
    mkfs.xfs /dev/sdc -L DISK2
    mkfs.xfs /dev/sdd -L DISK3
    mkfs.xfs /dev/sde -L DISK4
    
    • 1
    • 2
    • 3
    • 4

    3.4.创建挂载点

    mkdir -p /mnt/disk1
    mkdir -p /mnt/disk2
    mkdir -p /mnt/disk3
    mkdir -p /mnt/disk4
    
    • 1
    • 2
    • 3
    • 4

    3.5.编辑 /etc/fstab, 写入文件

    nano /etc/fstab
    
    • 1

    写入以下内容

    #                  
    LABEL=DISK1      /mnt/disk1     xfs     defaults,noatime  0       2
    LABEL=DISK2      /mnt/disk2     xfs     defaults,noatime  0       2
    LABEL=DISK3      /mnt/disk3     xfs     defaults,noatime  0       2
    LABEL=DISK4      /mnt/disk4     xfs     defaults,noatime  0       2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.6.挂载

    source /etc/fstab
    mount /dev/sdb /mnt/disk1
    mount /dev/sdc /mnt/disk2
    mount /dev/sdd /mnt/disk3
    mount /dev/sde /mnt/disk4
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.7.检查

    列出所有可用块设备的信息,同时还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息

    lsblk
    
    • 1

    3.*. 卸载(忽略)

    umount /dev/sdb /mnt/disk1
    umount /dev/sdc /mnt/disk2
    umount /dev/sdd /mnt/disk3
    umount /dev/sde /mnt/disk4
    
    • 1
    • 2
    • 3
    • 4

    3.8.安装minio

    3.8.1.将下载的minio文件, 迁移到linux服务器上

    可以使用Xftp工具

    3.8.2.将minio文件放到 /usr/local/bin/ 文件夹中
    mv minio /usr/local/bin/
    
    • 1
    3.8.3.赋予文件执行权限
    chmod +x minio
    
    • 1
    3.8.4.创建用户和组

    默认情况下,minio.service文件以minio-user用户和组运行

    groupadd -r minio-user
    useradd -M -r -g minio-user minio-user
    chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4
    
    • 1
    • 2
    • 3
    3.8.5.创建环境变量文件

    /etc/default/minio创建环境变量文件minio

    minio

    # Set the hosts and volumes MinIO uses at startup
    # The command uses MinIO expansion notation {x...y} to denote a
    # sequential series.
    #
    # The following example covers four MinIO hosts
    # with 4 drives each at the specified hostname and drive locations.
    # The command includes the port that each MinIO server listens on
    # (default 9000)
    
    MINIO_VOLUMES="http://minio{1...4}.mnmd.net:9000/mnt/disk{1...4}"
    
    # Set all MinIO server options
    #
    # The following explicitly sets the MinIO Console listen address to
    # port 9001 on all network interfaces. The default behavior is dynamic
    # port selection.
    
    MINIO_OPTS="--console-address :36953"
    
    # Set the root username. This user has unrestricted permissions to
    # perform S3 and administrative API operations on any resource in the
    # deployment.
    #
    # Defer to your organizations requirements for superadmin user name.
    
    MINIO_ROOT_USER=minioadmin
    
    # Set the root password
    #
    # Use a long, random, unique string that meets your organizations
    # requirements for passwords.
    
    MINIO_ROOT_PASSWORD=minioadmin
    
    # Set to the URL of the load balancer for the MinIO deployment
    # This value *must* match across all MinIO servers. If you do
    # not have a load balancer, set this value to to any *one* of the
    # MinIO hosts in the deployment as a temporary measure.
    # NO TLS
    # MINIO_SERVER_URL="http://minio.nginx.mnmd.net:9000"
    # HAVE TLS
    MINIO_SERVER_URL="https://minio.nginx.mnmd.net:9000"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    3.8.6.配置hosts
    vim /etc/hosts
    
    # 添加以下内容
    192.168.133.133 minio1.mnmd.net
    192.168.133.134 minio2.mnmd.net
    192.168.133.135 minio3.mnmd.net
    192.168.133.136 minio4.mnmd.net
    192.168.133.137 minio.nginx.mnmd.net
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    3.8.7.开启防火墙端口(默认)
    # 9000是api服务端口
    firewall-cmd --zone=public --add-port=9000/tcp --permanent
    # 36953是web管理端口
    firewall-cmd --zone=public --add-port=36953/tcp --permanent
    # 重启防火墙
    firewall-cmd --reload
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.9.负载均衡(nginx)

    3.9.1.安装
    # 新建日志文件夹
    mkdir -pv /var/minio/logs/{minio_api,minio_console}
    
    • 1
    • 2
    3.9.2.配置

    minio-cluster.conf

    # path: /usr/local/nginx/minio-cluster.conf
    #user  nobody;
    user  root;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        upstream minio_console_servers {
            server minio1.mnmd.net:36953 weight=25 max_fails=3 fail_timeout=30s;
            server minio2.mnmd.net:36953 weight=25 max_fails=3 fail_timeout=30s;
            server minio3.mnmd.net:36953 weight=25 max_fails=3 fail_timeout=30s;
            server minio4.mnmd.net:36953 weight=25 max_fails=3 fail_timeout=30s;
        }
    
        upstream minio_api_servers {
            server minio1.mnmd.net:9000 weight=25 max_fails=3 fail_timeout=30s;
            server minio2.mnmd.net:9000 weight=25 max_fails=3 fail_timeout=30s;
            server minio3.mnmd.net:9000 weight=25 max_fails=3 fail_timeout=30s;
            server minio4.mnmd.net:9000 weight=25 max_fails=3 fail_timeout=30s;
        }
    
        server {
            listen          36953 ssl;
            server_name     minio.nginx.mnmd.net;
    
            access_log      /var/minio/logs/minio_console/minio.access.log;
            error_log       /var/minio/logs/minio_console/minio.error.log;
    
            ssl_certificate      /usr/local/nginx/certs/CAs/public.crt;
            ssl_certificate_key  /usr/local/nginx/certs/CAs/private.key;
            # ssl_protocols      TLSv1 TLSv1.1 TLSv1.2;
            # ssl_ciphers         HIGH:!aNULL:!MD5;
            # ssl_session_timeout 5m;
            # ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
            # ssl_ciphers ALL:!ADH:IEXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
            # ssl_prefer_server_ciphers on;
    
            location / {
                proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
    
                client_body_buffer_size 10M;
                client_max_body_size 10G;
                # proxy_buffers 1024 4k;
                # proxy_read_timeout 3000;
    
                proxy_pass              http://minio_console_servers;
            }
        }
    
        server {
            listen          9000 ssl;
            server_name     minio.nginx.mnmd.net;
    
            access_log      /var/minio/logs/minio_api/minio.access.log;
            error_log       /var/minio/logs/minio_api/minio.error.log;
    
            ssl_certificate      /usr/local/nginx/certs/CAs/public.crt;
            ssl_certificate_key  /usr/local/nginx/certs/CAs/private.key;
            # ssl_session_timeout  5m;
            # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            # ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
            # ssl_prefer_server_ciphers on;
    
            location / {
                proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
    
                client_body_buffer_size 10M;
                client_max_body_size 10G;
                # proxy_buffers 1024 4k;
                # proxy_read_timeout 3000;
    
                proxy_pass              http://minio_api_servers;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    3.9.3.启动
    /usr/local/nginx/nginx -s quit
    /usr/local/nginx/nginx -c /usr/local/nginx/minio-cluster.conf
    
    • 1
    • 2
    3.9.4.查看状态
    ps -ef | grep nginx
    
    • 1
    3.9.5.停止
    /usr/local/nginx/nginx -s quit
    
    • 1
    3.9.6.设置开机启动
    • 进入目录 cd /usr/lib/systemd/system
    • nginx.service拷贝到对应的服务器上
    • 重新加载服务 systemctl daemon-reload
    • 设置为开机启动 systemctl enable nginx.service
    • 查看是否已开机启动 systemctl is-enabled nginx.service
    • 查看服务状态 systemctl status nginx.service
    • 启用服务 systemctl enable nginx.service
    • 启动服务 systemctl start nginx.service
    • 停止服务 systemctl stop nginx.service
    • 重启服务 systemctl restart nginx.service

    nginx.service

    #
    # /usr/lib/systemd/system
    # systemd service file for Nginx Server forking server
    #
    [Unit]
    Description=Nginx Server
    Documentation=Nginx 1.22.0
    Documentation=https://github.com/nginx/nginx
    Documentation=https://nginx.org/en/docs/beginners_guide.html
    
    After=network.target
    
    [Service]
    User=root
    Type=forking
    ExecStart=/usr/local/nginx/nginx -c /usr/local/nginx/minio-cluster.conf
    ExecReload=/usr/local/nginx/nginx -s reload
    ExecStop=/usr/local/nginx/nginx -s quit
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    3.9.7.查看远程端口是否可以使用(选)
    # 安装
    yum install telnet telnet-server
    
    telnet minio.nginx.mnmd.net 9000
    telnet minio.nginx.mnmd.net 36953
    
    telnet minio1.mnmd.net 9000
    telnet minio1.mnmd.net 36953
    
    telnet minio2.mnmd.net 9000
    telnet minio2.mnmd.net 36953
    
    telnet minio3.mnmd.net 9000
    telnet minio3.mnmd.net 36953
    
    telnet minio4.mnmd.net 9000
    telnet minio4.mnmd.net 36953
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    3.9.8.启动MinIO服务
    mkdir -p /var/minio
    chown -R minio-user:minio-user /var/minio
    
    systemctl daemon-reload
    systemctl enable minio.service
    # su minio-user
    systemctl start minio.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    3.9.9.确认服务处于联机状态
    systemctl status minio.service
    journalctl -f -u minio.service
    
    • 1
    • 2
    3.9.10.服务测试
    • 浏览器访问
      • http://minio.nginx.mnmd.net:9000
      • http://minio1.mnmd.net:9000 (选测)
      • http://minio2.mnmd.net:9000 (选测)
      • http://minio3.mnmd.net:9000 (选测)
      • http://minio4.mnmd.net:9000 (选测)
    3.9.11.访问MinIO管理页
    • 添加 Buckets, 举例,添加logbucket01
    • 点击 Manage Bucket,将SummaryAccess Policy设置成public

    3.10.配置TLS(选)

    使用TLS

    3.10.1.配置Minio服务使用TLS(仅供参考)

    参考 /etc/pki/tls/openssl.cnf

    修改openssl.cnf中,[ req_distinguished_name ]和[ alt_names ]

    #
    # OpenSSL example configuration file.
    # This is mostly being used for generation of certificate requests.
    #
    
    # This definition stops the following lines choking if HOME isn't
    # defined.
    HOME			= .
    RANDFILE		= $ENV::HOME/.rnd
    
    # Extra OBJECT IDENTIFIER info:
    #oid_file		= $ENV::HOME/.oid
    oid_section		= new_oids
    
    # To use this configuration file with the "-extfile" option of the
    # "openssl x509" utility, name here the section containing the
    # X.509v3 extensions to use:
    # extensions		=
    # (Alternatively, use a configuration file that has only
    # X.509v3 extensions in its main [= default] section.)
    
    [ new_oids ]
    
    # We can add new OIDs in here for use by 'ca', 'req' and 'ts'.
    # Add a simple OID like this:
    # testoid1=1.2.3.4
    # Or use config file substitution like this:
    # testoid2=${testoid1}.5.6
    
    # Policies used by the TSA examples.
    tsa_policy1 = 1.2.3.4.1
    tsa_policy2 = 1.2.3.4.5.6
    tsa_policy3 = 1.2.3.4.5.7
    
    ####################################################################
    [ ca ]
    default_ca	= CA_default		# The default ca section
    
    ####################################################################
    [ CA_default ]
    
    dir		= /etc/pki/CA		# Where everything is kept
    certs		= $dir/certs		# Where the issued certs are kept
    crl_dir		= $dir/crl		# Where the issued crl are kept
    database	= $dir/index.txt	# database index file.
    #unique_subject	= no			# Set to 'no' to allow creation of
    					# several ctificates with same subject.
    new_certs_dir	= $dir/newcerts		# default place for new certs.
    
    certificate	= $dir/cacert.pem 	# The CA certificate
    serial		= $dir/serial 		# The current serial number
    crlnumber	= $dir/crlnumber	# the current crl number
    					# must be commented out to leave a V1 CRL
    crl		= $dir/crl.pem 		# The current CRL
    private_key	= $dir/private/cakey.pem# The private key
    RANDFILE	= $dir/private/.rand	# private random number file
    
    x509_extensions	= usr_cert		# The extentions to add to the cert
    
    # Comment out the following two lines for the "traditional"
    # (and highly broken) format.
    name_opt 	= ca_default		# Subject Name options
    cert_opt 	= ca_default		# Certificate field options
    
    # Extension copying option: use with caution.
    # copy_extensions = copy
    
    # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
    # so this is commented out by default to leave a V1 CRL.
    # crlnumber must also be commented out to leave a V1 CRL.
    # crl_extensions	= crl_ext
    
    default_days	= 365			# how long to certify for
    default_crl_days= 30			# how long before next CRL
    default_md	= sha256		# use SHA-256 by default
    preserve	= no			# keep passed DN ordering
    
    # A few difference way of specifying how similar the request should look
    # For type CA, the listed attributes must be the same, and the optional
    # and supplied fields are just that :-)
    policy		= policy_match
    
    # For the CA policy
    [ policy_match ]
    countryName		= match
    stateOrProvinceName	= match
    organizationName	= match
    organizationalUnitName	= optional
    commonName		= supplied
    emailAddress		= optional
    
    # For the 'anything' policy
    # At this point in time, you must list all acceptable 'object'
    # types.
    [ policy_anything ]
    countryName		= optional
    stateOrProvinceName	= optional
    localityName		= optional
    organizationName	= optional
    organizationalUnitName	= optional
    commonName		= supplied
    emailAddress		= optional
    
    ####################################################################
    [ req ]
    default_bits		= 2048
    default_md		= sha256
    default_keyfile 	= privkey.pem
    distinguished_name	= req_distinguished_name
    attributes		= req_attributes
    x509_extensions	= v3_ca	# The extentions to add to the self signed cert
    
    # Passwords for private keys if not present they will be prompted for
    # input_password = secret
    # output_password = secret
    
    # This sets a mask for permitted string types. There are several options.
    # default: PrintableString, T61String, BMPString.
    # pkix	 : PrintableString, BMPString (PKIX recommendation before 2004)
    # utf8only: only UTF8Strings (PKIX recommendation after 2004).
    # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
    # MASK:XXXX a literal mask value.
    # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings.
    string_mask = utf8only
    
    # req_extensions = v3_req # The extensions to add to a certificate request
    
    [ req_distinguished_name ]
    countryName			= CN
    countryName_default		= CN
    countryName_min			= 2
    countryName_max			= 2
    
    stateOrProvinceName		= liaoning
    #stateOrProvinceName_default	= Default Province
    
    localityName			= dalian
    localityName_default		= dalian
    
    0.organizationName		= minio
    0.organizationName_default	= minio
    
    # we can do this but it is not needed normally :-)
    #1.organizationName		= Second Organization Name (eg, company)
    #1.organizationName_default	= World Wide Web Pty Ltd
    
    organizationalUnitName		= minio
    #organizationalUnitName_default	=
    
    commonName			= minio.nginx.mnmd.net
    commonName_max			= 64
    
    emailAddress			= xxx@163.com
    emailAddress_max		= 64
    
    # SET-ex3			= SET extension number 3
    
    [ req_attributes ]
    challengePassword		= A challenge password
    challengePassword_min		= 4
    challengePassword_max		= 20
    
    unstructuredName		= An optional company name
    
    [ usr_cert ]
    
    # These extensions are added when 'ca' signs a request.
    
    # This goes against PKIX guidelines but some CAs do it and some software
    # requires this to avoid interpreting an end user certificate as a CA.
    
    basicConstraints=CA:FALSE
    
    # Here are some examples of the usage of nsCertType. If it is omitted
    # the certificate can be used for anything *except* object signing.
    
    # This is OK for an SSL server.
    # nsCertType			= server
    
    # For an object signing certificate this would be used.
    # nsCertType = objsign
    
    # For normal client use this is typical
    # nsCertType = client, email
    
    # and for everything including object signing:
    # nsCertType = client, email, objsign
    
    # This is typical in keyUsage for a client certificate.
    # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    # This will be displayed in Netscape's comment listbox.
    nsComment			= "OpenSSL Generated Certificate"
    
    # PKIX recommendations harmless if included in all certificates.
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    # This stuff is for subjectAltName and issuerAltname.
    # Import the email address.
    # subjectAltName=email:copy
    # An alternative to produce certificates that aren't
    # deprecated according to PKIX.
    # subjectAltName=email:move
    
    # Copy subject details
    # issuerAltName=issuer:copy
    
    #nsCaRevocationUrl		= http://www.domain.dom/ca-crl.pem
    #nsBaseUrl
    #nsRevocationUrl
    #nsRenewalUrl
    #nsCaPolicyUrl
    #nsSslServerName
    
    # This is required for TSA certificates.
    # extendedKeyUsage = critical,timeStamping
    
    [ v3_req ]
    
    # Extensions to add to a certificate request
    
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    [ v3_ca ]
    
    
    # Extensions for a typical CA
    
    
    # PKIX recommendation.
    
    subjectKeyIdentifier=hash
    
    authorityKeyIdentifier=keyid:always,issuer
    
    # This is what PKIX recommends but some broken software chokes on critical
    # extensions.
    #basicConstraints = critical,CA:true
    # So we do this instead.
    basicConstraints = CA:true
    
    # Key usage: this is typical for a CA certificate. However since it will
    # prevent it being used as an test self-signed certificate it is best
    # left out by default.
    # keyUsage = cRLSign, keyCertSign
    
    # Some might want this also
    # nsCertType = sslCA, emailCA
    
    # Include email address in subject alt name: another PKIX recommendation
    # subjectAltName=email:copy
    # Copy issuer details
    # issuerAltName=issuer:copy
    subjectAltName=@alt_names
    
    # DER hex encoding of an extension: beware experts only!
    # obj=DER:02:03
    # Where 'obj' is a standard or added object
    # You can even override a supported extension:
    # basicConstraints= critical, DER:30:03:01:01:FF
    
    [ alt_names ]
    DNS.1 = minio.nginx.mnmd.net
    DNS.2 = minio1.mnmd.net
    DNS.3 = minio2.mnmd.net
    DNS.4 = minio3.mnmd.net
    DNS.5 = minio4.mnmd.net
    
    [ crl_ext ]
    
    # CRL extensions.
    # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
    
    # issuerAltName=issuer:copy
    authorityKeyIdentifier=keyid:always
    
    [ proxy_cert_ext ]
    # These extensions should be added when creating a proxy certificate
    
    # This goes against PKIX guidelines but some CAs do it and some software
    # requires this to avoid interpreting an end user certificate as a CA.
    
    basicConstraints=CA:FALSE
    
    # Here are some examples of the usage of nsCertType. If it is omitted
    # the certificate can be used for anything *except* object signing.
    
    # This is OK for an SSL server.
    # nsCertType			= server
    
    # For an object signing certificate this would be used.
    # nsCertType = objsign
    
    # For normal client use this is typical
    # nsCertType = client, email
    
    # and for everything including object signing:
    # nsCertType = client, email, objsign
    
    # This is typical in keyUsage for a client certificate.
    # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    # This will be displayed in Netscape's comment listbox.
    nsComment			= "OpenSSL Generated Certificate"
    
    # PKIX recommendations harmless if included in all certificates.
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    # This stuff is for subjectAltName and issuerAltname.
    # Import the email address.
    # subjectAltName=email:copy
    # An alternative to produce certificates that aren't
    # deprecated according to PKIX.
    # subjectAltName=email:move
    
    # Copy subject details
    # issuerAltName=issuer:copy
    
    #nsCaRevocationUrl		= http://www.domain.dom/ca-crl.pem
    #nsBaseUrl
    #nsRevocationUrl
    #nsRenewalUrl
    #nsCaPolicyUrl
    #nsSslServerName
    
    # This really needs to be in place for it to be a proxy certificate.
    proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
    
    ####################################################################
    [ tsa ]
    
    default_tsa = tsa_config1	# the default TSA section
    
    [ tsa_config1 ]
    
    # These are used by the TSA reply generation only.
    dir		= ./demoCA		# TSA root directory
    serial		= $dir/tsaserial	# The current serial number (mandatory)
    crypto_device	= builtin		# OpenSSL engine to use for signing
    signer_cert	= $dir/tsacert.pem 	# The TSA signing certificate
    					# (optional)
    certs		= $dir/cacert.pem	# Certificate chain to include in reply
    					# (optional)
    signer_key	= $dir/private/tsakey.pem # The TSA private key (optional)
    
    default_policy	= tsa_policy1		# Policy if request did not specify it
    					# (optional)
    other_policies	= tsa_policy2, tsa_policy3	# acceptable policies (optional)
    digests		= sha1, sha256, sha384, sha512	# Acceptable message digests (mandatory)
    accuracy	= secs:1, millisecs:500, microsecs:100	# (optional)
    clock_precision_digits  = 0	# number of digits after dot. (optional)
    ordering		= yes	# Is ordering defined for timestamps?
    				# (optional, default: no)
    tsa_name		= yes	# Must the TSA name be included in the reply?
    				# (optional, default: no)
    ess_cert_id_chain	= no	# Must the ESS cert id chain be included?
    				# (optional, default: no)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    3.10.2.创建私钥文件和自签名证书
    # mkdir -p ${HOME}/.minio/certs
    # cd ${HOME}/.minio/certs
    # minio-server
    mkdir -p /home/minio-user/.minio/certs/CAs
    cd /home/minio-user/.minio/certs/CAs
    # nginx-server
    mkdir -p /usr/local/nginx/certs/CAs
    cd /usr/local/nginx/certs/CAs
    
    # 生成自签名证书, 参数说明
    # genrsa	生成rsa私钥文件
    # -out	    输出文件
    # 2048  	密钥长度,默认512
    # req	    证书请求的子命令
    # -x509 	输出证书
    # -new  	生成证书请求
    # –nodes	表示私钥不加密,若不带参数将提示输入密码
    # -key  	私钥文件
    # -subj 	输入证书拥有者信息
    # -days 	证书有效时间
    # -subj     参数	多个参数示例:/C=CN/ST=liaoning/L=dalian/O=minio/CN=minio1.mnmd.net
    # C     	Country, 单位所在国家,为两位数的国家缩写,如: CN 就是中国
    # ST    	State/Province, 单位所在州或省
    # L     	Locality, 单位所在城市 / 或县区
    # O     	Organization, 此网站的单位名称
    # OU    	Organization Unit, 下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等
    # CN    	Common Name, 网站的域名
    
    # 生成证书前可以先修改配置文件(选),参考 3.10.1
    
    # nginx 代表的是客户
    # minio1/minio2/minio3/minio4 代表的是服务器
    # 1.生成CA证书(认证中心)
    # 私钥
    openssl genrsa -out ca.key 2048
    # 公钥
    openssl req -x509 -new -nodes -key ca.key -subj "/CN=minio.nginx.mnmd.net" -out ca.crt -days 3650
    
    # 2.生成服务器证书请求
    # 私钥
    openssl genrsa -out server.key 2048
    # 公钥
    openssl req -new -nodes -key server.key -subj "/CN=minio.nginx.mnmd.net" -out server.csr
    
    # 3.利用CA证书签名生成服务器证书
    echo subjectAltName = DNS:minio*.mnmd.net > extfile.cnf
    openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 3650
    
    # minio服务中是服务器证书
    # 将生成的 `private.key` 和 `public.crt` 放到 `/usr/local/nginx/certs/CAs` 和 `/home/minio-user/.minio/certs/CAs` 路径下
    
    # 授予minio-user用户组
    chown -R minio-user:minio-user /home/minio-user/.minio/certs/CAs
    
    # 重新启动nginx
    /usr/local/nginx/nginx -s quit
    /usr/local/nginx/nginx -c /usr/local/nginx/minio-cluster.conf
    
    # 重新启动minio
    systemctl restart minio.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    3.10.3.查看证书是否有效
    openssl x509 -in /usr/local/nginx/certs/CAs/public.crt -noout -text
    openssl x509 -in /home/minio-user/.minio/certs/CAs/public.crt -noout -text
    
    • 1
    • 2

    3.9.开发(Spring Boot)

    1) maven
    <dependency>
        <groupId>io.miniogroupId>
        <artifactId>minioartifactId>
        <version>8.4.6version>
    dependency>
    <dependency>
        <groupId>com.squareup.okhttp3groupId>
        <artifactId>okhttpartifactId>
        <version>4.9.3version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2) yaml

    注意
    nginx config 中,需要配置client_max_body_size,否则上传文件过程中,太大的文件无法上传

    spring:
      servlet:
        multipart:
          max-file-size: 1GB
          max-request-size: 1GB
          
    minio:
      endpoint: minio.nginx.mnmd.net
      port: 9000
      secure: true
      accessKey: minioadmin
      secretKey: minioadmin
      bucketName: bucket01
      region: cn-liaoning-dalian
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    3) minio config java
    @Data
    @Component
    @ConfigurationProperties(prefix = "minio")
    public class MinioConfig {
    
        /**
         * 端点
         */
        private String endpoint;
    
        /**
         * 端点
         */
        private int port;
    
        /**
         * 是否是https
         */
        private boolean secure;
    
        /**
         * 用户名
         */
        private String accessKey;
    
        /**
         * 密码
         */
        private String secretKey;
    
        /**
         * 桶名称
         */
        private String bucketName;
    
        /**
         * 自定义区域,可选
         */
        private String region;
    
        @Bean
        public MinioClient minioClient() throws KeyManagementException {
            return MinioClient.builder().endpoint(endpoint, port, secure)
                    .credentials(accessKey, secretKey)
                    .region(region)
                    .httpClient(HttpsClientUtils.getUnsafeOkHttpsClient())
                    .build();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    4) minio service java
    @Slf4j
    @Service
    public class MinioServiceImpl implements MinioService {
    
        @Autowired
        private MinioClient minioClient;
    
        @Value("${minio.bucketName}")
        private String defaultBucketName;
    
        @Override
        public boolean existBucket() {
            return existBucket(defaultBucketName);
        }
    
        @Override
        public boolean existBucket(String bucketName) {
            try {
                return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
            } catch (ErrorResponseException | InsufficientDataException | InternalException | InvalidKeyException | InvalidResponseException | IOException | NoSuchAlgorithmException | ServerException | XmlParserException e) {
                log.error("判断桶是否存在异常", e.getMessage());
            }
            return false;
        }
    
        @Override
        public void createBucket() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
            createBucket(defaultBucketName);
        }
    
        @Override
        public void createBucket(String bucketName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
            if (!existBucket(bucketName)) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
            }
        }
    
        @Override
        public List<Bucket> findBucketList() {
            try {
                return minioClient.listBuckets();
            } catch (InvalidKeyException | NoSuchAlgorithmException | ErrorResponseException | InvalidResponseException | ServerException | InsufficientDataException | XmlParserException | InternalException | IOException e) {
                log.error("获取桶列表异常!", e.getMessage());
                return null;
            }
        }
    
        @Override
        public List<Item> findObjectList(String bucketName) {
            try {
                createBucket(bucketName);
                Iterable<Result<Item>> myObjects = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).build());
                Iterator<Result<Item>> iterator = myObjects.iterator();
                List<Item> list = new ArrayList<>();
                while (iterator.hasNext()) {
                    list.add(iterator.next().get());
                }
                return list;
            } catch (InvalidKeyException | NoSuchAlgorithmException | ErrorResponseException | InvalidResponseException | ServerException | InsufficientDataException | XmlParserException | InternalException | IOException e) {
                log.error("获取对象列表异常!", e.getMessage());
                return null;
            }
        }
    
        @Override
        public StatObjectResponse getObjectState(String filePath) {
            return getObjectState(defaultBucketName, filePath);
        }
    
        @Override
        public StatObjectResponse getObjectState(String bucketName, String filePath) {
            try {
                createBucket(bucketName);
                return minioClient.statObject(StatObjectArgs.builder().bucket(bucketName).object(filePath).build());
            } catch (MinioException | IOException | InvalidKeyException | NoSuchAlgorithmException e) {
                log.error("查看文件状态异常!", e.getMessage());
                return null;
            }
        }
    
        @Override
        public ObjectWriteResponse upload(InputStream file, String filePath) {
            return upload(defaultBucketName, file, filePath);
        }
    
        @Override
        public ObjectWriteResponse upload(String bucketName, InputStream file, String filePath) {
            try {
                createBucket(bucketName);
                return minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(filePath).stream(file, file.available(), -1).build());
            } catch (MinioException | IOException | InvalidKeyException | NoSuchAlgorithmException e) {
                log.error("文件上传失败!{}", e.getMessage());
                return null;
            }
        }
    
        @Override
        public InputStream download(String filePath) {
            return download(defaultBucketName, filePath);
        }
    
        @Override
        public InputStream download(String bucketName, String filePath) {
            try {
                createBucket(bucketName);
                return minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(filePath).build());
            } catch (InvalidKeyException | NoSuchAlgorithmException | ErrorResponseException | InvalidResponseException | ServerException | InsufficientDataException | XmlParserException | InternalException | IOException e) {
                log.error("文件下载失败!", e.getMessage());
                return null;
            }
        }
    
        @Override
        public boolean remove(String filePath) {
            return remove(defaultBucketName, filePath);
        }
    
        @Override
        public boolean remove(String bucketName, String fileName) {
            try {
                minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(fileName).build());
                return true;
            } catch (InvalidKeyException | NoSuchAlgorithmException | ErrorResponseException | InvalidResponseException | ServerException | InsufficientDataException | XmlParserException | InternalException | IOException e) {
                log.error("文件删除失败!", e.getMessage());
                return false;
            }
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130

    A.附录

    A.1.参考

    A.2.省市代码参考

    # 省代码
    - 北京市 11
    - 天津市 12
    - 河北省 13
    - 山西省 14
    - 内蒙古自治区 15
    - 辽宁省 21
    - 吉林省 22
    - 黑龙江省 23
    - 上海市 31
    - 江苏省 32
    - 浙江省 33
    - 安徽省 34
    - 福建省 35
    - 江西省 36
    - 山东省 37
    - 河南省 41
    - 湖北省 42
    - 湖南省 43
    - 广东省 44
    - 广西自治区 45
    - 海南省 46
    - 重庆市 50
    - 四川省 51
    - 贵州省 52
    - 云南省 53
    - 西藏自治区 54
    - 陕西省 61
    - 甘肃省 62
    - 青海省 63
    - 宁夏自治区 64
    - 新疆自治区 65
    
    # 市代码
    ## 北京市 11
    地区代码	地区名称
    1000	北京市
    
    ## 天津市 12
    地区代码	地区名称
    1100	天津市
    
    ## 河北省 13
    地区代码	地区名称
    1210	石家庄市
    1210	晋州市
    1210	行唐县
    1210	灵寿县
    1210	平山县
    1210	赞皇县
    1210	元氏县
    1210	高邑县
    1210	新乐市
    1210	赵县
    1210	藁城市
    1210	无极县
    1210	深泽县
    1210	辛集市
    1210	鹿泉市
    1210	栾城县
    1210	正定县
    1210	井陉县
    1240	唐山市
    1243	滦县
    1244	滦南县
    1245	乐亭县
    1246	迁安市
    1247	迁西县
    1248	遵化市
    1249	玉田县
    1251	唐海县
    1260	秦皇岛市
    1261	青龙县
    1262	昌黎县
    1263	抚宁县
    1264	卢龙县
    1270	邯郸市
    1271	邯郸县
    1281	大名县
    1282	魏县
    1283	曲周县
    1284	邱县
    1285	鸡泽县
    1286	肥乡县
    1287	广平县
    1288	成安县
    1289	临漳县
    1291	磁县
    1292	涉县
    1293	永年县
    1294	馆陶县
    1295	武安市
    1310	邢台市
    1311	邢台县
    1321	南宫市
    1322	沙河市
    1323	临城县
    1324	内邱县
    1325	柏乡县
    1326	隆尧县
    1327	任县
    1328	南和县
    1329	宁晋县
    1331	巨鹿县
    1332	新河县
    1333	广宗县
    1334	平乡县
    1335	威县
    1336	清河县
    1337	临西县
    1340	保定市
    1341	满城县
    1342	清苑县
    1351	定州市
    1352	涿州市
    1353	易县
    1354	徐水县
    1355	涞源县
    1356	定兴县
    1357	顺平县
    1358	唐县
    1359	望都县
    1361	涞水县
    1362	高阳县
    1363	安新县
    1364	雄县
    1365	容城县
    1366	高碑店市
    1367	曲阳县
    1368	阜平县
    1369	安国市
    1371	博野县
    1372	蠡县
    1380	张家口市
    1381	宣化县
    1391	张北县
    1392	康保县
    1393	沽源县
    1394	尚义县
    1395	蔚县
    1396	阳原县
    1397	怀安县
    1398	万全县
    1399	怀来县
    1401	涿鹿县
    1402	赤城县
    1403	崇礼县
    1410	承德市
    1411	承德县
    1421	宽城县
    1422	兴隆县
    1423	平泉县
    1424	滦平县
    1425	丰宁县
    1426	隆化县
    1427	围场县
    1430	沧州市
    1431	沧县
    1432	青县
    1441	泊头市
    1442	任丘市
    1443	河间市
    1444	肃宁县
    1445	献县
    1446	吴桥县
    1447	东光县
    1448	南皮县
    1449	盐山县
    1451	黄骅市
    1452	孟村县
    1453	海兴县
    1460	廊坊市
    1461	三河市
    1462	固安县
    1463	永清县
    1464	香河县
    1465	大城县
    1466	文安县
    1467	霸州市
    1468	大厂县
    1480	衡水市
    1482	冀州市
    1483	枣强县
    1484	武邑县
    1485	深州市
    1486	武强县
    1487	饶阳县
    1488	安平县
    1489	故城县
    1491	景县
    1492	阜城县
    
    ## 山西省 14
    地区代码	地区名称
    1610	太原市
    1610	古交市
    1610	娄烦县
    1610	阳曲县
    1610	清徐县
    1620	大同市
    1630	阳泉市
    1631	阳高县
    1632	天镇县
    1633	广灵县
    1634	灵邱县
    1635	浑源县
    1636	应县
    1637	左云县
    1638	右玉县
    1639	大同县
    1640	长治市
    1641	怀仁县
    1651	平定县
    1652	盂县
    1661	长治县
    1662	潞城市
    1663	襄垣县
    1664	屯留县
    1665	平顺县
    1666	黎城县
    1667	壶关县
    1668	长子县
    1669	武乡县
    1671	沁县
    1672	沁源县
    1680	晋城市
    1681	沁水县
    1682	阳城县
    1683	高平市
    1684	陵川县
    1690	朔州市
    1691	山阴县
    1710	忻州市
    1712	定襄县
    1713	五台县
    1714	原平市
    1715	代县
    1716	繁峙县
    1717	宁武县
    1718	静乐县
    1719	神池县
    1721	五寨县
    1722	岢岚县
    1723	河曲县
    1724	保德县
    1725	偏关县
    1730	吕梁市
    1731	汾阳市
    1732	文水县
    1733	交城县
    1734	孝义市
    1735	兴县
    1736	临县
    1737	柳林县
    1738	石楼县
    1739	岚县
    1741	方山县
    1743	中阳县
    1744	交口县
    1750	晋中市
    1752	榆社县
    1753	左权县
    1754	和顺县
    1755	昔阳县
    1756	寿阳县
    1757	太谷县
    1758	祁县
    1759	平遥县
    1761	介休市
    1762	灵石县
    1770	临汾市
    1772	侯马市
    1773	曲沃县
    1774	翼城县
    1775	襄汾县
    1776	洪洞县
    1777	霍州市
    1778	古县
    1779	安泽县
    1781	浮山县
    1782	吉县
    1783	乡宁县
    1784	蒲县
    1785	大宁县
    1786	永和县
    1787	隰县
    1788	汾西县
    1810	运城市
    1812	永济市
    1813	芮城县
    1814	临猗县
    1815	万荣县
    1816	新绛县
    1817	稷山县
    1818	河津市
    1819	闻喜县
    1821	夏县
    1822	绛县
    1823	平陆县
    1824	垣曲县
    
    ## 内蒙古 15
    地区代码	地区名称
    1910	呼和浩特市
    1910	清水河县
    1910	和林格尔县
    1910	武川县
    1910	托克托县
    1910	土左旗
    1920	包头市
    1921	土默特右旗
    1922	固阳县
    1930	乌海市
    1940	赤峰市
    1941	阿鲁科尔沁旗
    1942	巴林左旗
    1943	巴林右旗
    1944	林西县
    1945	克什克腾
    1946	翁牛特旗
    1947	喀喇沁旗
    1948	宁城县
    1949	敖汉旗
    1960	呼伦贝尔市
    1962	满州里市
    1963	扎兰屯市
    1964	牙克石市
    1965	阿荣旗
    1966	莫力达瓦达斡尔族自治旗
    1967	额尔古纳市
    1968	根河市
    1969	鄂伦春族自治旗
    1971	鄂温克族自治旗
    1972	新巴尔虎右旗
    1973	新巴尔虎左旗
    1974	陈巴尔虎旗
    1980	兴安盟
    1983	科尔沁右翼中旗
    1984	扎赉特旗
    1985	突泉县
    1986	阿尔山市
    1990	通辽市
    1992	霍林郭勒市
    1993	科尔沁左翼中旗
    1994	科尔沁左翼后旗
    1995	开鲁县
    1996	库伦旗
    1997	奈曼旗
    1998	扎鲁特旗
    2010	锡林郭勒盟
    2011	二连浩特市
    2013	阿巴嘎旗
    2014	苏尼特左旗
    2015	苏尼特右旗
    2016	东乌珠穆沁旗
    2017	西乌珠穆沁旗
    2018	太仆寺旗
    2019	镶黄旗
    2021	正镶白旗
    2022	正蓝旗
    2023	多伦县
    2030	乌兰察布盟
    2035	卓资县
    2036	化德县
    2037	商都县
    2038	兴和县
    2039	丰镇市
    2041	凉城县
    2042	察哈尔右翼前旗
    2043	察哈尔右翼中旗
    2044	察哈尔右翼后旗
    2045	达尔罕茂明安联合旗
    2046	四子王旗
    2050	鄂尔多斯市
    2052	达拉特旗
    2053	准格尔旗
    2054	鄂托克前旗
    2055	鄂托克旗
    2056	杭锦旗
    2057	乌审旗
    2058	伊金霍勒旗
    2070	巴彦淖尔盟
    2072	五原县
    2073	磴口县
    2074	乌拉特前旗
    2075	乌拉特中旗
    2076	乌拉特后旗
    2077	杭锦后旗
    2080	阿拉善盟
    2082	阿右旗
    2083	额济纳旗
    
    ## 辽宁省 21
    地区代码	地区名称
    2210	沈阳市
    2210	法库县
    2210	康平县
    2210	辽中县
    2210	新民市
    2220	大连市
    2222	普兰店市
    2223	庄河市
    2224	瓦房店市
    2225	长海县
    2230	鞍山市
    2231	台安县
    2232	海城市
    2240	抚顺市
    2241	抚顺县
    2242	新宾县
    2243	喀左县
    2250	本溪市
    2251	本溪县
    2252	桓仁县
    2260	丹东市
    2261	凤城市
    2262	大石桥市
    2263	东港市
    2264	宽甸县
    2265	岫岩县
    2270	锦州市
    2271	绥中县
    2272	凌海市
    2273	北宁市
    2274	黑山县
    2275	义县
    2276	葫芦岛市
    2277	兴城市
    2280	营口市
    2282	盖州市
    2290	阜新市
    2291	阜新县
    2292	彰武县
    2310	辽阳市
    2311	辽阳县
    2312	灯塔市
    2320	盘锦市
    2321	大洼县
    2322	盘山县
    2330	铁岭市
    2332	西丰县
    2333	昌图县
    2336	调兵山市
    2337	开原市
    2340	朝阳市
    2342	建平县
    2343	凌源市
    2344	清原县
    2345	建昌县
    2346	北票市
    
    ## 吉林省 22
    地区代码	地区名称
    2410	长春市
    2410	九台市
    2410	德惠市
    2410	农安县
    2410	榆树市
    2420	吉林市
    2421	永吉县
    2423	磐石市
    2424	蛟河市
    2425	桦甸市
    2426	舒兰市
    2430	四平市
    2431	梨树县
    2432	伊通县
    2433	双辽市
    2434	公主岭市
    2440	辽源市
    2441	东丰县
    2442	东辽县
    2450	通化市
    2451	通化县
    2452	辉南县
    2453	柳河县
    2454	梅河口市
    2455	集安市
    2460	白山市
    2461	抚松县
    2462	靖宇县
    2463	长白县
    2464	江源县
    2422	临江市
    2470	白城市
    2472	洮南市
    2474	大安市
    2477	镇赉县
    2478	通榆县
    2520	松原市
    2473	扶余县
    2475	长岭县
    2476	前郭县
    2479	乾安县
    2490	延吉市
    2492	图们市
    2493	敦化市
    2494	珲春市
    2495	龙井市
    2496	和龙市
    2497	汪清县
    2498	安图县
    
    ## 黑龙江省 23
    地区代码	地区名称
    2610	哈尔滨市
    2610	依兰县
    2610	延寿县
    2610	方正县
    2610	通河县
    2610	木兰县
    2610	巴彦县
    2610	五常市
    2610	宾县
    2610	尚志市
    2610	双城市
    2610	阿城市
    2610	呼兰县
    2640	齐齐哈尔市
    2641	龙江县
    2642	讷河市
    2643	依安县
    2644	泰来县
    2645	甘南县
    2646	杜蒙县
    2647	富裕县
    2648	林甸县
    2649	克山县
    2650	大庆市
    2651	克东县
    2652	拜泉县
    2660	鸡西市
    2661	鸡东县
    2670	鹤岗市
    2671	萝北县
    2672	绥滨县
    2680	双鸭山市
    2681	集贤县
    2690	佳木斯市
    2710	伊春市
    2711	嘉荫县
    2712	铁力市
    2720	牡丹江市
    2721	桦南县
    2723	桦川县
    2724	宝清县
    2725	汤原县
    2726	饶河县
    2727	抚远县
    2728	友谊县
    2729	同江市
    2731	富锦市
    2740	七台河市
    2741	勃利县
    2751	宁安市
    2752	海林市
    2753	穆棱市
    2754	东宁县
    2755	林口县
    2756	虎林市
    2757	绥芬河市
    2758	密山市
    2760	绥化市
    2762	安达市
    2763	肇东市
    2764	海伦市
    2765	望奎县
    2766	兰西县
    2767	青冈县
    2768	肇源县
    2769	肇州县
    2771	庆安县
    2772	明水县
    2773	绥棱县
    2780	黑河市
    2782	北安市
    2783	五大连池市
    2784	嫩江县
    2786	逊克县
    2787	孙吴县
    2790	大兴安岭地区
    2791	呼玛县
    2792	塔河县
    2793	漠河县
    
    ## 上海市 31
    地区代码	地区名称
    2900	上海市
    
    ## 江苏省 32
    地区代码	地区名称
    3010	南京市
    3010	高淳县
    3010	溧水县
    3020	无锡市
    3022	江阴市
    3023	宜兴市
    3030	徐州市
    3031	丰县
    3032	沛县
    3033	铜山县
    3034	睢宁县
    3035	邳州市
    3036	新沂市
    3040	常州市
    3042	金坛市
    3043	溧阳市
    3050	苏州市
    3051	太仓市
    3052	昆山市
    3054	吴江市
    3055	常熟市
    3056	张家港市
    3060	南通市
    3061	海安县
    3062	如皋市
    3063	如东县
    3065	海门市
    3066	启东市
    3070	连云港市
    3071	赣榆县
    3072	东海县
    3073	灌云县
    3080	淮安市
    3082	灌南县
    3083	沭阳县
    3084	通州市
    3085	涟水县
    3086	泗洪县
    3087	洪泽县
    3088	盱眙县
    3089	金湖县
    3090	宿迁市
    3093	泗阳县
    3094	宿豫县
    3110	盐城市
    3111	响水县
    3112	滨海县
    3113	阜宁县
    3114	射阳县
    3115	建湖县
    3116	大丰市
    3117	东台市
    3118	盐都县
    3120	扬州市
    3121	高邮市
    3122	宝应县
    3123	靖江市
    3124	泰兴市
    3125	江都市
    3128	泰州市
    3129	仪征市
    3131	兴化市
    3132	姜堰市
    3140	镇江市
    3141	丹阳市
    3142	句容市
    3143	扬中市
    
    ## 浙江省 33
    地区代码	地区名称
    3310	杭州市
    3310	淳安县
    3310	建德市
    3310	临安市
    3310	富阳市
    3310	桐庐县
    3320	宁波市
    3321	象山县
    3322	宁海县
    3324	余姚市
    3325	慈溪市
    3326	奉化市
    3330	温州市
    3332	洞头县
    3333	乐清市
    3334	永嘉县
    3335	平阳县
    3336	苍南县
    3337	文成县
    3338	泰顺县
    3339	瑞安市
    3350	嘉兴市
    3351	嘉善县
    3352	平湖市
    3353	海盐县
    3354	桐乡市
    3355	海宁市
    3360	湖州市
    3361	德清县
    3362	长兴县
    3363	安吉县
    3370	绍兴市
    3371	绍兴县
    3372	上虞市
    3373	嵊州市
    3374	新昌县
    3375	诸暨市
    3380	金华市
    3382	永康市
    3383	武义县
    3384	浦江县
    3385	磐安县
    3386	兰溪市
    3387	义乌市
    3388	东阳市
    3410	衢州市
    3412	常山县
    3413	开化县
    3414	龙游县
    3415	江山市
    3420	舟山市
    3421	岱山县
    3422	嵊泗县
    3430	丽水市
    3432	青田县
    3433	云和县
    3434	庆元县
    3435	缙云县
    3436	遂昌县
    3437	松阳县
    3438	景宁县
    3439	龙泉市
    3450	台州市
    3452	临海市
    3454	温岭市
    3455	仙居县
    3456	天台县
    3457	三门县
    3458	玉环县
    
    ## 安徽省 34
    地区代码	地区名称
    3610	合肥市
    3610	长丰县
    3610	肥西县
    3610	肥东县
    3620	芜湖市
    3621	芜湖县
    3622	繁昌县
    3623	南陵县
    3630	蚌埠市
    3631	怀远县
    3632	五河县
    3633	固镇县
    3640	淮南市
    3641	凤台县
    3650	马鞍山市
    3651	当涂县
    3660	淮北市
    3661	濉溪县
    3670	铜陵市
    3671	铜陵县
    3680	安庆市
    3681	桐城市
    3682	怀宁县
    3683	枞阳县
    3684	潜山县
    3685	太湖县
    3686	宿松县
    3687	望江县
    3688	岳西县
    3710	黄山市
    3711	歙县
    3712	休宁县
    3713	黟县
    3714	祁门县
    3720	阜阳市
    3722	亳州市
    3724	临泉县
    3725	太和县
    3726	涡阳县
    3727	蒙城县
    3728	阜南县
    3729	颍上县
    3731	界首市
    3732	利辛县
    3740	宿州市
    3742	砀山县
    3743	萧县
    3745	灵璧县
    3746	泗县
    3750	滁州市
    3752	天长市
    3753	来安县
    3754	全椒县
    3755	定远县
    3756	凤阳县
    3757	明光市
    3760	六安市
    3763	寿县
    3764	霍邱县
    3765	舒城县
    3766	金寨县
    3767	霍山县
    3771	宣城市
    3772	郎溪县
    3773	广德县
    3774	宁国市
    3775	泾县
    3776	旌德县
    3777	绩溪县
    3781	巢湖市
    3782	庐江县
    3783	无为县
    3784	含山县
    3785	和县
    3790	池州市
    3792	东至县
    3793	石台县
    3794	青阳县
    
    ## 福建省 35
    地区代码	地区名称
    3910	福州市
    3910	平潭县
    3910	福清市
    3910	长乐市
    3910	永泰县
    3910	闽清县
    3910	罗源县
    3910	连江县
    3910	闽侯县
    3930	厦门市
    3940	莆田市
    3942	仙游县
    3950	三明市
    3951	明溪县
    3952	清流县
    3953	宁化县
    3954	大田县
    3955	尤溪县
    3956	沙县
    3957	将乐县
    3958	泰宁县
    3959	建宁县
    3960	永安市
    3970	泉州市
    3971	惠安县
    3972	晋江市
    3973	南安市
    3974	安溪县
    3975	永春县
    3976	德化县
    3978	石狮市
    3990	漳州市
    3991	龙海市
    3992	云霄县
    3993	漳浦县
    3994	诏安县
    3995	长泰县
    3996	东山县
    3997	南靖县
    3998	平和县
    3999	华安县
    4010	南平市
    4012	邵武市
    4013	顺昌县
    4014	建阳市
    4015	建瓯市
    4016	浦城县
    4018	光泽县
    4019	松溪县
    4021	政和县
    4022	武夷山市
    4030	宁德市
    4032	福鼎市
    4033	霞浦县
    4034	福安市
    4035	古田县
    4036	屏南县
    4037	寿宁县
    4038	周宁县
    4039	柘荣县
    4050	龙岩市
    4052	长汀县
    4053	永定县
    4054	上杭县
    4055	武平县
    4056	漳平市
    4057	连城县
    
    ## 江西省 36
    地区代码	地区名称
    4210	南昌市
    4210	湾里
    4210	进贤县
    4210	安义县
    4210	新建县
    4210	南昌县
    4220	景德镇市
    4221	乐平市
    4222	浮梁县
    4230	萍乡市
    4231	上栗县
    4232	芦溪县
    4240	九江市
    4240	庐山
    4241	九江县
    4242	瑞昌市
    4243	武宁县
    4244	修水县
    4245	永修县
    4246	德安县
    4247	星子县
    4248	都昌县
    4249	湖口县
    4251	彭泽县
    4260	新余市
    4261	分宜县
    4270	鹰潭市
    4271	贵溪市
    4272	余江县
    4280	赣州市
    4282	赣县
    4283	南康市
    4284	信丰县
    4285	大余县
    4286	上犹县
    4287	崇义县
    4288	安远县
    4289	龙南县
    4291	定南县
    4292	全南县
    4293	宁都县
    4294	于都县
    4295	兴国县
    4296	瑞金市
    4297	会昌县
    4298	寻乌县
    4299	石城县
    4310	宜春市
    4312	丰城市
    4313	樟树市
    4314	高安市
    4315	奉新县
    4316	万载县
    4317	上高县
    4318	宜丰县
    4319	靖安县
    4321	铜鼓县
    4330	上饶市
    4332	上饶县
    4333	广丰县
    4334	玉山县
    4335	铅山县
    4336	横峰县
    4337	弋阳县
    4338	余干县
    4339	鄱阳县
    4341	万年县
    4342	德兴市
    4343	婺源县
    4350	吉安市
    4352	井冈山市
    4353	吉安县
    4354	吉水县
    4355	峡江县
    4356	新干县
    4357	永丰县
    4358	泰和县
    4359	遂川县
    4361	万安县
    4362	安福县
    4363	永新县
    4364	莲花县
    4370	抚州市
    4372	南城县
    4373	黎川县
    4374	南丰县
    4375	崇仁县
    4376	乐安县
    4377	宜黄县
    4378	金溪县
    4379	资溪县
    4381	东乡县
    4382	广昌县
    
    ## 山东省 37
    地区代码	地区名称
    4510	济南市
    4510	商河县
    4510	济阳县
    4510	平阴县
    4510	章丘市
    4520	青岛市
    4521	即墨市
    4522	胶南市
    4523	莱西市
    4524	平度市
    4525	胶州市
    4530	淄博市
    4531	桓台县
    4535	高青县
    4536	沂源县
    4540	枣庄市
    4541	滕州市
    4550	东营市
    4551	垦利县
    4552	利津县
    4553	广饶县
    4560	烟台市
    4561	蓬莱市
    4562	招远市
    4563	栖霞市
    4564	海阳市
    4566	长岛县
    4567	龙口市
    4568	莱阳市
    4569	莱州市
    4580	潍坊市
    4581	安丘市
    4582	寿光市
    4583	临朐县
    4584	昌乐县
    4585	昌邑市
    4586	高密市
    4587	五莲县
    4588	青州市
    4589	诸城市
    4610	济宁市
    4611	衮州市
    4612	邹城市
    4613	微山县
    4614	鱼台县
    4615	金乡县
    4616	嘉祥县
    4617	汶上县
    4618	泗水县
    4619	曲阜市
    4630	泰安市
    4631	宁阳县
    4632	肥城市
    4633	东平县
    4634	莱芜市
    4635	新泰市
    4650	威海市
    4651	乳山市
    4652	文登市
    4653	荣成市
    4660	滨州市
    4662	惠民县
    4663	阳信县
    4664	无棣县
    4665	沾化县
    4666	博兴县
    4667	邹平县
    4680	德州市
    4682	乐陵市
    4683	陵县
    4684	平原县
    4685	夏津县
    4686	武城县
    4687	齐河县
    4688	禹城市
    4689	临邑县
    4693	宁津县
    4694	庆云县
    4710	聊城市
    4712	临清市
    4713	阳谷县
    4714	莘县
    4715	茌平县
    4716	东阿县
    4717	冠县
    4718	高唐县
    4730	临沂市
    4732	日照市
    4733	郯城县
    4734	苍山县
    4735	莒南县
    4736	莒县
    4737	沂水县
    4739	蒙阴县
    4741	平邑县
    4742	费县
    4743	沂南县
    4744	临沭县
    4750	菏泽市
    4752	曹县
    4753	定陶县
    4754	成武县
    4755	单县
    4756	巨野县
    4757	梁山县
    4758	郓城县
    4759	鄄城县
    4761	东明县
    
    ## 河南省 41
    地区代码	地区名称
    4910	郑州市
    4910	济源市
    4910	新密市
    4910	登封市
    4910	巩义市
    4910	新郑市
    4910	中牟县
    4910	荥阳市
    4920	开封市
    4921	杞县
    4922	通许县
    4923	尉氏县
    4924	开封县
    4925	兰考县
    4930	洛阳市
    4931	偃师市
    4932	孟津县
    4933	新安县
    4934	栾川县
    4935	嵩县
    4936	汝阳县
    4937	宜阳县
    4938	洛宁县
    4939	伊川县
    4950	平顶山市
    4951	宝丰县
    4952	叶县
    4953	鲁山县
    4954	郏县
    4955	襄城县
    4956	汝州市
    4960	安阳市
    4961	林州市
    4962	安阳县
    4963	汤阴县
    4964	滑县
    4965	内黄县
    4970	鹤壁市
    4971	浚县
    4972	淇县
    4980	新乡市
    4981	新乡县
    4982	获嘉县
    4983	原阳县
    4984	延津县
    4985	封丘县
    4986	长垣县
    4987	卫辉市
    4988	辉县市
    5010	焦作市
    5011	修武县
    5012	博爱县
    5013	武陟县
    5014	沁阳市
    5015	温县
    5016	孟州市
    5020	濮阳市
    5021	清丰县
    5022	南乐县
    5023	范县
    5024	台前县
    5025	濮阳县
    5030	许昌市
    5031	长葛市
    5032	许昌县
    5033	鄢陵县
    5034	禹州市
    5040	漯河市
    5041	舞阳县
    5042	临颍县
    5043	郾城县
    5044	舞钢市
    5050	三门峡市
    5051	渑池县
    5052	陕县
    5053	灵宝市
    5054	卢氏县
    5055	义马市
    5060	商丘市
    5062	虞城县
    5064	民权县
    5065	宁陵县
    5066	睢县
    5067	夏邑县
    5068	柘城县
    5069	永城市
    5080	周口市
    5082	扶沟县
    5083	西华县
    5084	商水县
    5085	太康县
    5086	鹿邑县
    5087	郸城县
    5088	淮阳县
    5089	沈丘县
    5091	项城市
    5110	驻马店市
    5112	确山县
    5113	泌阳县
    5114	遂平县
    5115	西平县
    5116	上蔡县
    5117	汝南县
    5118	平舆县
    5119	新蔡县
    5121	正阳县
    5130	南阳市
    5132	邓州市
    5133	南召县
    5134	方城县
    5135	西峡县
    5137	镇平县
    5138	内乡县
    5139	淅川县
    5141	社旗县
    5142	唐河县
    5143	新野县
    5144	桐柏县
    5150	信阳市
    5152	息县
    5153	淮滨县
    5155	潢川县
    5156	光山县
    5157	固始县
    5158	商城县
    5159	罗山县
    5161	新县
    
    ## 湖北省 42
    地区代码	地区名称
    5210	武汉市
    5220	黄石市
    5221	大冶市
    5230	十堰市
    5260	宜昌市
    5261	宜都市
    5262	当阳市
    5263	宜昌县
    5264	枝江市
    5265	远安县
    5266	兴山县
    5267	秭归县
    5268	长阳县
    5269	五峰县
    5280	襄樊市
    5282	宜城县
    5283	南漳县
    5284	谷城县
    5285	保康县
    5286	随州市
    5287	老河口市
    5288	枣阳市
    5310	鄂州市
    5311	神农架林区
    5320	荆门市
    5330	黄冈市
    5331	麻城市
    5332	武穴市
    5333	团风县
    5334	红安县
    5335	罗田县
    5336	英山县
    5337	浠水县
    5338	蕲春县
    5339	黄梅县
    5350	孝感市
    5351	孝昌县
    5352	应城市
    5353	安陆市
    5354	广水市
    5355	大悟县
    5356	云梦县
    5357	汉川县
    5360	咸宁市
    5362	赤壁市
    5363	嘉鱼县
    5364	通城县
    5365	崇阳县
    5366	通山县
    5367	阳新县
    5370	荆州市
    5371	仙桃市
    5372	石首市
    5373	洪湖市
    5374	天门市
    5375	潜江市
    5377	松滋市
    5378	公安县
    5379	监利县
    5381	钟祥市
    5382	京山县
    5383	沙洋县
    5391	丹江口市
    5392	郧县
    5393	郧西县
    5394	竹山县
    5395	竹溪县
    5396	房县
    5410	恩施州
    5412	利川市
    5413	建始县
    5414	巴东县
    5415	宣恩县
    5416	咸丰县
    5417	来凤县
    5418	鹤峰县
    
    ## 湖南省 43
    地区代码	地区名称
    5510	长沙市
    5510	宁乡县
    5510	浏阳市
    5510	望城县
    5520	株州市
    5521	株洲县
    5522	攸县
    5523	茶陵县
    5525	醴陵市
    5526	炎陵县
    5530	湘潭市
    5532	湘乡市
    5533	韶山市
    5540	衡阳市
    5541	衡阳县
    5542	衡南县
    5543	衡山县
    5544	衡东县
    5545	常宁市
    5546	祁东县
    5547	耒阳市
    5550	邵阳市
    5551	邵东县
    5552	新邵县
    5553	邵阳县
    5554	隆回县
    5555	洞口县
    5556	武冈市
    5557	绥宁县
    5558	新宁县
    5559	城步县
    5570	岳阳市
    5571	岳阳县
    5572	临湘市
    5573	华容县
    5574	湘阴县
    5575	平江县
    5576	汩罗市
    5580	常德市
    5581	安乡县
    5582	汉寿县
    5583	澧县
    5584	临澧县
    5585	桃源县
    5586	石门县
    5587	津市市
    5590	张家界市
    5591	慈利县
    5592	桑植县
    5610	益阳市
    5612	沅江市
    5614	南县
    5615	桃江县
    5616	安化县
    5620	娄底市
    5622	冷水江市
    5623	涟源市
    5624	双峰县
    5625	新化县
    5630	郴州市
    5632	资兴市
    5634	桂阳县
    5635	永兴县
    5636	宜章县
    5637	嘉禾县
    5638	临武县
    5639	汝城县
    5641	桂东县
    5642	安仁县
    5650	永州市
    5653	东安县
    5654	道县
    5655	宁远县
    5656	江永县
    5657	江华县
    5658	蓝山县
    5659	新田县
    5661	双牌县
    5662	祁阳县
    5670	怀化市
    5672	洪江市
    5674	沅陵县
    5675	辰溪县
    5676	溆浦县
    5677	麻阳县
    5678	新晃县
    5679	芷江县
    5681	会同县
    5682	靖州县
    5683	通道县
    5690	吉首市
    5692	泸溪县
    5693	凤凰县
    5694	花垣县
    5695	保靖县
    5696	古丈县
    5697	永顺县
    5698	龙山县
    
    ## 广东省 44
    地区代码	地区名称
    5810	广州市
    5810	增城市
    5810	从化市
    5820	韶关市
    5820	曲江县
    5822	始兴县
    5823	南雄市
    5824	仁化县
    5825	乐昌市
    5826	翁源县
    5827	乳源县
    5828	新丰县
    5840	深圳市
    5850	珠海市
    5860	汕头市
    5860	澄海市
    5862	饶平县
    5863	南澳县
    5860	潮阳市
    5865	揭阳市
    5866	揭西县
    5867	普宁市
    5868	惠来县
    5869	潮州市
    5871	揭东县
    5872	潮安营业部
    5880	佛山市
    5890	江门市
    5892	台山市
    5893	恩平市
    5894	开平市
    5895	鹤山市
    5910	湛江市
    5911	吴川市
    5912	廉江市
    5913	遂溪县
    5914	雷州市
    5915	徐闻县
    5920	茂名市
    5921	信宜市
    5922	高州市
    5923	电白县
    5924	化州市
    5930	肇庆市
    5931	高要市
    5932	四会市
    5933	广宁县
    5934	怀集县
    5935	封开县
    5936	德庆县
    5937	云浮市
    5938	新兴县
    5939	郁南县
    5941	罗定市
    5950	惠州市
    5952	博罗县
    5953	惠东县
    5954	龙门县
    5956	大亚湾营业部
    5960	梅州市
    5962	大埔县
    5963	丰顺县
    5964	五华县
    5965	兴宁市
    5966	平远县
    5967	蕉岭县
    5970	汕尾市
    5971	海丰县
    5972	陆丰市
    5973	陆河县
    5980	河源市
    5981	紫金县
    5982	龙川县
    5983	连平县
    5984	和平县
    5985	东源县
    5990	阳江市
    5991	阳西县
    5992	阳春市
    5993	阳东县
    6010	清远市
    6011	佛冈县
    6012	英德市
    6013	阳山县
    6014	连州市
    6015	连山县
    6016	连南县
    6017	清新县
    6020	东莞市
    6030	中山市
    
    ## 广西自治区 45
    地区代码	地区名称
    6110	南宁市
    6110	马山县
    6110	隆安县
    6110	上林县
    6110	宾阳县
    6110	横县
    6110	武鸣县
    6121	凭祥市
    6127	扶绥县
    6128	崇左市
    6129	大新县
    6131	天等县
    6132	宁明县
    6133	龙州县
    6140	柳州市
    6141	柳江县
    6142	柳城县
    6151	合山市
    6152	鹿寨县
    6153	象州县
    6154	武宣县
    6155	来宾市
    6156	融安县
    6157	三江县
    6158	融水县
    6159	金秀县
    6161	忻城县
    6170	桂林市
    6171	阳朔县
    6172	临桂县
    6181	灵川县
    6182	全州县
    6183	兴安县
    6184	永福县
    6185	灌阳县
    6186	龙胜县
    6187	资源县
    6188	平乐县
    6189	荔浦县
    6191	恭城县
    6210	梧州市
    6211	苍梧县
    6221	岑溪市
    6222	藤县
    6223	昭平县
    6224	蒙山县
    6225	贺州市
    6226	钟山县
    6227	富川县
    6230	北海市
    6231	合浦县
    6240	玉林市
    6242	贵港市
    6243	桂平市
    6244	平南县
    6245	容县
    6246	北流市
    6247	陆川县
    6248	博白县
    6249	兴业县
    6261	百色市
    6262	田阳县
    6263	田东县
    6264	平果县
    6266	靖西县
    6267	那坡县
    6268	凌云县
    6269	乐业县
    6271	田林县
    6272	隆林县
    6273	西林县
    6275	德保县
    6281	河池市
    6282	宜州市
    6283	罗城县
    6284	环江县
    6285	南丹县
    6286	天峨县
    6287	凤山县
    6288	东兰县
    6289	巴马县
    6291	都安县
    6292	大化县
    6311	钦州市
    6312	上思县
    6314	灵山县
    6315	浦北县
    6330	防城港市
    6331	东兴市
    
    ## 海南省 46
    地区代码	地区名称
    6410	海口市
    6410	琼中县
    6410	保亭县
    6410	陵水县
    6410	乐东县
    6410	东方市
    6410	昌江县
    6410	白沙县
    6410	儋州市
    6410	临高县
    6410	澄迈县
    6410	屯昌县
    6410	定安县
    6410	万宁市
    6410	琼海市
    6410	文昌市
    6410	琼山市
    6410	五指山市
    6420	三亚市
    
    ## 重庆市 50
    地区代码	地区名称
    6530	合川市
    6530	江津市
    6530	万盛区
    6530	綦江县
    6530	巴南区
    6530	渝北区
    6530	长寿区
    6530	重庆市
    6530	璧山县
    6530	荣昌县
    6530	双桥区
    6530	大足县
    6530	永川市
    6530	铜梁县
    6530	潼南县
    6670	万州区
    6673	开县
    6674	忠县
    6675	梁平县
    6676	云阳县
    6677	奉节县
    6678	巫山县
    6679	巫溪县
    6681	城口县
    6690	涪陵区
    6692	垫江县
    6693	南川市
    6694	丰都县
    6695	武隆县
    6870	黔江区
    6871	石柱县
    6872	秀山县
    6874	酉阳县
    6875	彭水
    
    ## 四川省 51
    地区代码	地区名称
    6510	邛崃市
    6510	大邑县
    6510	崇州市
    6510	彭州市
    6510	郫县
    6510	双流县
    6510	金堂县
    6510	成都市
    6510	都江堰市
    6510	新津县
    6510	蒲江县
    6510	温江区
    6510	新都区
    6550	自贡市
    6551	荣县
    6552	富顺县
    6560	攀枝花市
    6561	米易县
    6562	盐边县
    6570	泸州市
    6571	泸县
    6572	合江县
    6573	纳溪区
    6574	叙永县
    6575	古蔺县
    6580	德阳市
    6581	绵竹市
    6582	中江县
    6583	什邡市
    6584	广汉市
    6585	罗江县
    6590	绵阳市
    6591	三台县
    6592	盐亭县
    6593	安县
    6594	梓潼县
    6595	北川县
    6596	平武县
    6597	江油市
    6610	广元市
    6611	旺苍县
    6612	青川县
    6613	剑阁县
    6614	苍溪县
    6620	遂宁市
    6621	蓬溪县
    6622	射洪县
    6623	大英县
    6630	内江市
    6632	乐至县
    6633	安岳县
    6634	威远县
    6635	资中县
    6636	资阳市
    6637	简阳市
    6638	隆昌县
    6650	乐山市
    6651	仁寿县
    6652	眉山市
    6653	犍为县
    6654	井研县
    6655	夹江县
    6656	洪雅县
    6657	彭山县
    6658	沐川县
    6659	青神县
    6662	峨边县
    6663	马边县
    6664	峨眉山市
    6665	丹棱县
    6710	宜宾市
    6712	宜宾县
    6713	南溪县
    6714	江安县
    6715	长宁县
    6716	高县
    6717	筠连县
    6718	珙县
    6719	兴文县
    6721	屏山县
    6730	南充市
    6732	华蓥市
    6734	南部县
    6735	岳池县
    6736	营山县
    6737	广安市
    6738	蓬安县
    6739	仪陇县
    6741	武胜县
    6742	西充县
    6743	阆中市
    6750	达州市
    6752	达县
    6753	宣汉县
    6754	开江县
    6755	万源市
    6756	通江县
    6757	南江县
    6758	巴中市
    6759	平昌县
    6761	大竹县
    6762	渠县
    6763	邻水县
    6770	雅安市
    6772	名山县
    6773	荥经县
    6774	汉源县
    6775	石棉县
    6776	天全县
    6777	芦山县
    6778	宝兴县
    6790	马尔康县
    6791	汶川县
    6792	理县
    6793	茂县
    6794	松潘县
    6795	九寨沟县
    6797	小金县
    6798	黑水县
    6801	壤塘县
    6802	阿坝县
    6803	若尔盖县
    6804	红原县
    6805	金川县
    6810	康定县
    6812	泸定县
    6813	丹巴县
    6814	九龙县
    6815	雅江县
    6816	道孚县
    6817	炉霍县
    6818	甘孜县
    6819	新龙县
    6821	德格县
    6822	白玉县
    6823	石渠县
    6824	色达县
    6825	理塘县
    6826	巴塘县
    6827	乡城县
    6828	稻城县
    6829	得荣县
    6840	西昌市
    6842	木里县
    6843	盐源县
    6845	会理县
    6846	会东县
    6847	宁南县
    6848	普格县
    6849	布拖县
    6851	金阳县
    6852	昭觉县
    6853	喜德县
    6854	冕宁县
    6855	越西县
    6856	甘洛县
    6857	美姑县
    6858	雷波县
    6859	德昌县
    
    ## 贵州省 52
    地区代码	地区名称
    7010	贵阳市
    7010	清镇市
    7010	修文县
    7010	息烽县
    7010	开阳县
    7020	六盘水市
    7021	六枝特区
    7022	盘县
    7030	遵义市
    7032	遵义县
    7033	桐梓县
    7034	绥阳县
    7035	正安县
    7036	道真县
    7037	务川县
    7038	凤冈县
    7039	湄潭县
    7041	余庆县
    7042	仁怀市
    7043	赤水市
    7044	习水县
    7050	铜仁市
    7052	江口县
    7053	玉屏县
    7054	石阡县
    7055	思南县
    7056	印江县
    7057	德江县
    7058	沿河县
    7059	松桃县
    7061	万山特区
    7070	兴义市
    7072	兴仁县
    7073	普安县
    7074	晴隆县
    7075	贞丰县
    7076	望漠县
    7077	册亨县
    7078	安龙县
    7090	毕节市
    7092	大方县
    7093	黔西县
    7094	金沙县
    7095	织金县
    7096	纳雍县
    7097	威宁县
    7098	赫章县
    7110	安顺市
    7117	平坝县
    7118	普定县
    7119	关岭县
    7121	镇宁县
    7122	紫云县
    7130	凯里市
    7132	黄平县
    7133	施秉县
    7134	三穗县
    7135	镇远县
    7136	岑巩县
    7137	天柱县
    7138	锦屏县
    7139	剑河县
    7141	台江县
    7142	黎平县
    7143	榕江县
    7144	从江县
    7145	雷山县
    7146	麻江县
    7147	丹寨县
    7150	都匀市
    7152	荔波县
    7153	贵定县
    7154	福泉市
    7155	瓮安县
    7156	独山县
    7157	平塘县
    7158	罗甸县
    7159	长顺县
    7161	龙里县
    7162	惠水县
    7163	三都县
    
    ## 云南省 53
    地区代码	地区名称
    7310	昆明市
    7310	寻甸县
    7310	禄劝县
    7310	嵩明县
    7310	石林县
    7310	宜良县
    7310	富民县
    7310	安宁市
    7310	晋宁县
    7310	呈贡县
    7340	昭通市
    7342	鲁甸县
    7343	巧家县
    7344	盐津县
    7345	大关县
    7346	永善县
    7347	绥江县
    7348	镇雄县
    7349	彝良县
    7351	威信县
    7352	水富县
    7360	曲靖市
    7362	马龙县
    7363	宣威市
    7364	富源县
    7365	罗平县
    7366	师宗县
    7367	陆良县
    7369	会泽县
    7371	沾益县
    7380	楚雄市
    7382	双柏县
    7383	牟定县
    7384	南华县
    7385	姚安县
    7386	大姚县
    7387	永仁县
    7388	元谋县
    7389	武定县
    7391	禄丰县
    7410	玉溪市
    7412	江川县
    7413	澄江县
    7414	通海县
    7415	华宁县
    7416	易门县
    7417	峨山县
    7418	新平县
    7419	元江县
    7430	个旧市
    7432	开远市
    7433	蒙自县
    7434	屏边县
    7435	建水县
    7436	石屏县
    7437	弥勒县
    7438	泸西县
    7439	元阳县
    7441	红河县
    7442	金平县
    7443	绿春县
    7444	河口县
    7450	文山县
    7452	砚山县
    7453	西畴县
    7454	麻栗坡县
    7455	马关县
    7456	邱北县
    7457	广南县
    7458	富宁县
    7470	思茅市
    7472	普洱县
    7473	墨江县
    7474	景东县
    7475	景谷县
    7476	镇沅县
    7477	江城县
    7478	孟连县
    7479	澜沧县
    7481	西盟县
    7490	景洪市
    7492	勐海县
    7493	勐腊县
    7510	大理市
    7512	漾濞县
    7513	祥云县
    7514	宾川县
    7515	弥渡县
    7516	南涧县
    7517	巍山县
    7518	永平县
    7519	云龙县
    7521	洱源县
    7522	剑川县
    7523	鹤庆县
    7530	保山市
    7532	施甸县
    7533	腾冲县
    7534	龙陵县
    7535	昌宁县
    7540	潞西市
    7543	梁河县
    7544	盈江县
    7545	陇川县
    7546	瑞丽市
    7550	丽江市
    7552	永胜县
    7553	华坪县
    7554	宁蒗县
    7560	泸水县
    7562	福贡县
    7563	贡山县
    7564	兰坪县
    7570	香格里拉县
    7572	德钦县
    7573	维西县
    7580	临沧市
    7582	凤庆县
    7583	云县
    7584	永德县
    7585	镇康县
    7586	双江县
    7587	耿马县
    7588	沧源县
    
    ## 西藏自治区 54
    地区代码	地区名称
    7700	拉萨市
    7700	墨竹工卡县
    7700	达孜县
    7700	堆龙德庆县
    7700	曲水县
    7700	尼木县
    7700	当雄县
    7700	林周县
    7720	昌都县
    7721	江达县
    7722	贡觉县
    7723	类乌齐县
    7724	丁青县
    7725	察雅县
    7726	八宿县
    7727	左贡县
    7728	芒康县
    7729	洛隆县
    7730	边坝县
    7740	乃东县
    7741	扎囊县
    7742	贡嘎县
    7743	桑日县
    7744	琼结县
    7745	曲松县
    7746	措美县
    7747	洛扎县
    7748	加查县
    7749	隆子县
    7750	错那县
    7751	浪卡子县
    7760	日喀则市
    7761	南木林县
    7762	江孜县
    7763	定日县
    7764	萨迦县
    7765	拉孜县
    7766	昂仁县
    7767	谢通门县
    7768	白朗县
    7769	仁布县
    7770	康马县
    7771	定结县
    7772	仲巴县
    7773	亚东县
    7774	吉隆县
    7775	聂拉木县
    7776	萨嘎县
    7777	岗巴县
    7711	樟木口岸镇
    7790	那曲县
    7791	嘉黎县
    7792	比如县
    7793	聂荣县
    7794	安多县
    7795	申扎县
    7796	索县
    7797	班戈县
    7798	巴青县
    7799	尼玛县
    7800	双湖特别行政区
    7811	普兰县
    7812	札达县
    7810	噶尔县
    7813	日土县
    7814	革吉县
    7815	改则县
    7816	措勤县
    7830	林芝县
    7831	工布江达县
    7832	米林县
    7833	墨脱县
    7834	波密县
    7835	察隅县
    7836	朗县
    
    ## 陕西省 61
    地区代码	地区名称
    7910	西安市
    7910	高陵县
    7910	户县
    7910	周至县
    7910	蓝田县
    7920	铜川市
    7921	耀县
    7922	宜君县
    7930	宝鸡市
    7932	凤翔县
    7933	岐山县
    7934	扶风县
    7935	眉县
    7936	陇县
    7937	千阳县
    7938	麟游县
    7939	凤县
    7941	太白县
    7950	咸阳市
    7951	兴平市
    7952	三原县
    7953	泾阳县
    7954	乾县
    7955	礼泉县
    7956	永寿县
    7957	彬县
    7958	长武县
    7959	旬邑县
    7961	淳化县
    7962	武功县
    7970	渭南市
    7972	韩城市
    7973	华县
    7974	华阴市
    7975	潼关县
    7976	大荔县
    7977	蒲城县
    7978	澄城县
    7979	白水县
    7981	合阳县
    7982	富平县
    7990	汉中市
    7992	南郑县
    7993	城固县
    7994	洋县
    7995	西乡县
    7996	勉县
    7997	宁强县
    7998	略阳县
    7999	镇巴县
    8001	留坝县
    8002	佛坪县
    8010	安康市
    8012	汉阴县
    8013	石泉县
    8014	宁陕县
    8015	紫阳县
    8016	岚皋县
    8017	平利县
    8018	镇坪县
    8019	旬阳县
    8021	白河县
    8030	商洛市
    8032	洛南县
    8033	丹凤县
    8034	商南县
    8035	山阳县
    8036	镇安县
    8037	柞水县
    8040	延安市
    8042	延长县
    8043	延川县
    8044	子长县
    8045	安塞县
    8046	志丹县
    8047	吴旗县
    8048	甘泉县
    8049	富县
    8051	洛川县
    8052	宜川县
    8053	黄龙县
    8054	黄陵县
    8060	榆林市
    8062	神木县
    8063	府谷县
    8064	横山县
    8065	靖边县
    8066	定边县
    8067	绥德县
    8068	米脂县
    8069	佳县
    8071	吴堡县
    8072	清涧县
    8073	子洲县
    
    ## 甘肃省 62
    地区代码	地区名称
    8210	兰州市
    8210	榆中县
    8210	皋兰县
    8210	永登县
    8210	红古区
    8220	嘉峪关市
    8230	金昌市
    8231	永昌县
    8240	白银市
    8241	靖远县
    8242	会宁县
    8243	景泰县
    8244	平川区
    8250	天水市
    8251	清水县
    8252	秦安县
    8253	甘谷县
    8254	武山县
    8255	张家川县
    8260	酒泉市
    8261	玉门市
    8263	敦煌市
    8264	金塔县
    8265	肃北县
    8266	阿克塞县
    8267	安西县
    8270	张掖市
    8272	肃南县
    8273	民乐县
    8274	临泽县
    8275	高台县
    8276	山丹县
    8280	武威市
    8282	民勤县
    8283	古浪县
    8284	天祝县
    8290	定西市
    8292	通渭县
    8293	陇西县
    8294	渭源县
    8295	临洮县
    8296	漳县
    8297	岷县
    8310	陇南市
    8312	宕昌县
    8313	成县
    8314	康县
    8315	文县
    8316	西和县
    8317	礼县
    8318	两当县
    8319	徽县
    8330	平凉市
    8332	泾川县
    8333	灵台县
    8334	崇信县
    8335	华亭县
    8336	庄浪县
    8337	静宁县
    8340	庆阳市
    8342	庆城县
    8343	环县
    8344	华池县
    8345	合水县
    8346	正宁县
    8347	宁县
    8348	镇原县
    8360	临夏州
    8363	康乐县
    8364	永靖县
    8365	广河县
    8366	和政县
    8367	东乡县
    8368	积石山县
    8380	甘南州
    8381	临潭县
    8382	卓尼县
    8383	舟曲县
    8384	迭部县
    8385	玛曲县
    8386	碌曲县
    8387	夏河县
    
    ## 青海省 63
    地区代码	地区名称
    8510	西宁市
    8510	湟源县
    8510	湟中县
    8510	大通回族土族自治县
    8520	海东地区
    8521	平安县
    8522	民和回族土族自治县
    8523	乐都县
    8526	互助土族自治县
    8527	化隆回族自治县
    8528	循化撒拉族自治县
    8540	海北藏族自治州
    8541	门源回族自治县
    8542	祁连县
    8543	海晏县
    8544	刚察县
    8550	黄南藏族自治州
    8551	同仁县
    8552	尖扎县
    8553	泽库县
    8554	河南蒙古族自治县
    8560	海南藏族自治州
    8561	共和县
    8562	同德县
    8563	贵德县
    8564	兴海县
    8565	贵南县
    8570	果洛藏族自治州
    8571	玛沁县
    8572	班玛县
    8573	甘德县
    8574	达日县
    8575	久治县
    8576	玛多县
    8580	玉树藏族自治州
    8581	玉树县
    8582	杂多县
    8583	称多县
    8584	治多县
    8585	囊谦县
    8586	曲麻莱县
    8590	海西蒙古族藏族自治州
    8591	格尔木市
    8592	德令哈市
    8593	乌兰县
    8594	都兰县
    8595	天峻县
    
    ## 宁夏自治区 64
    地区代码	地区名称
    8710	银川市
    8710	灵武市
    8710	贺兰县
    8710	永宁县
    8720	石嘴山市
    8721	平罗县
    8731	吴忠市
    8732	青铜峡市
    8733	中卫市
    8734	中宁县
    8736	盐池县
    8737	同心县
    8741	固原市
    8742	海原县
    8743	西吉县
    8744	隆德县
    8745	泾源县
    8746	彭阳县
    
    ## 新疆自治区 65
    地区代码	地区名称
    8810	乌鲁木齐市
    8810	乌鲁木齐县
    8820	克拉玛依市
    8830	吐鲁番市
    8832	鄯善县
    8833	托克逊县
    8840	哈密市
    8842	巴里坤哈萨克自治县
    8843	伊吾县
    8844	北屯镇
    8850	昌吉市
    8852	米泉市
    8853	呼图壁县
    8854	玛纳斯县
    8855	奇台县
    8856	阜康市
    8857	吉木萨尔县
    8858	五家渠市
    8859	木垒哈萨克自治县
    8870	博乐市
    8872	精河县
    8873	温泉县
    8880	库尔勒市
    8882	轮台县
    8883	尉犁县
    8884	若羌县
    8885	且末县
    8886	焉耆回族自治县
    8887	和静县
    8888	和硕县
    8889	博湖县
    8910	阿克苏市
    8912	温宿县
    8913	库车县
    8914	沙雅县
    8915	新和县
    8916	拜城县
    8917	乌什县
    8918	阿瓦提县
    8919	柯坪县
    8930	阿图什市
    8932	阿克陶县
    8933	阿合奇县
    8934	乌恰县
    8940	喀什市
    8942	疏附县
    8943	疏勒县
    8944	英吉沙县
    8945	泽普县
    8946	莎车县
    8947	叶城县
    8948	麦盖提县
    8949	岳普湖县
    8951	伽师县
    8952	巴楚县
    8953	塔什库尔干塔吉克自治县
    8960	和田市
    8963	墨玉县
    8964	皮山县
    8965	洛浦县
    8966	策勒县
    8967	于田县
    8968	民丰县
    8980	伊宁市
    8981	奎屯市
    8992	伊宁县
    8993	察布查尔锡伯自治县
    8994	霍城县
    8995	巩留县
    8996	新源县
    8997	昭苏县
    8998	特克斯县
    8999	尼勒克县
    9010	塔城市
    9012	额敏县
    9013	乌苏市
    9014	沙湾县
    9015	托里县
    9016	裕民县
    9017	和布克赛尔蒙古自治县
    9020	阿勒泰市
    9022	布尔津县
    9023	富蕴县
    9024	福海县
    9025	哈巴河县
    9026	青河县
    9027	吉木乃县
    9028	石河子市
    9029	三道岭地区
    9031	阿拉尔市
    9032	图木舒克市
    8847	阿拉山口口岸
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362
    • 363
    • 364
    • 365
    • 366
    • 367
    • 368
    • 369
    • 370
    • 371
    • 372
    • 373
    • 374
    • 375
    • 376
    • 377
    • 378
    • 379
    • 380
    • 381
    • 382
    • 383
    • 384
    • 385
    • 386
    • 387
    • 388
    • 389
    • 390
    • 391
    • 392
    • 393
    • 394
    • 395
    • 396
    • 397
    • 398
    • 399
    • 400
    • 401
    • 402
    • 403
    • 404
    • 405
    • 406
    • 407
    • 408
    • 409
    • 410
    • 411
    • 412
    • 413
    • 414
    • 415
    • 416
    • 417
    • 418
    • 419
    • 420
    • 421
    • 422
    • 423
    • 424
    • 425
    • 426
    • 427
    • 428
    • 429
    • 430
    • 431
    • 432
    • 433
    • 434
    • 435
    • 436
    • 437
    • 438
    • 439
    • 440
    • 441
    • 442
    • 443
    • 444
    • 445
    • 446
    • 447
    • 448
    • 449
    • 450
    • 451
    • 452
    • 453
    • 454
    • 455
    • 456
    • 457
    • 458
    • 459
    • 460
    • 461
    • 462
    • 463
    • 464
    • 465
    • 466
    • 467
    • 468
    • 469
    • 470
    • 471
    • 472
    • 473
    • 474
    • 475
    • 476
    • 477
    • 478
    • 479
    • 480
    • 481
    • 482
    • 483
    • 484
    • 485
    • 486
    • 487
    • 488
    • 489
    • 490
    • 491
    • 492
    • 493
    • 494
    • 495
    • 496
    • 497
    • 498
    • 499
    • 500
    • 501
    • 502
    • 503
    • 504
    • 505
    • 506
    • 507
    • 508
    • 509
    • 510
    • 511
    • 512
    • 513
    • 514
    • 515
    • 516
    • 517
    • 518
    • 519
    • 520
    • 521
    • 522
    • 523
    • 524
    • 525
    • 526
    • 527
    • 528
    • 529
    • 530
    • 531
    • 532
    • 533
    • 534
    • 535
    • 536
    • 537
    • 538
    • 539
    • 540
    • 541
    • 542
    • 543
    • 544
    • 545
    • 546
    • 547
    • 548
    • 549
    • 550
    • 551
    • 552
    • 553
    • 554
    • 555
    • 556
    • 557
    • 558
    • 559
    • 560
    • 561
    • 562
    • 563
    • 564
    • 565
    • 566
    • 567
    • 568
    • 569
    • 570
    • 571
    • 572
    • 573
    • 574
    • 575
    • 576
    • 577
    • 578
    • 579
    • 580
    • 581
    • 582
    • 583
    • 584
    • 585
    • 586
    • 587
    • 588
    • 589
    • 590
    • 591
    • 592
    • 593
    • 594
    • 595
    • 596
    • 597
    • 598
    • 599
    • 600
    • 601
    • 602
    • 603
    • 604
    • 605
    • 606
    • 607
    • 608
    • 609
    • 610
    • 611
    • 612
    • 613
    • 614
    • 615
    • 616
    • 617
    • 618
    • 619
    • 620
    • 621
    • 622
    • 623
    • 624
    • 625
    • 626
    • 627
    • 628
    • 629
    • 630
    • 631
    • 632
    • 633
    • 634
    • 635
    • 636
    • 637
    • 638
    • 639
    • 640
    • 641
    • 642
    • 643
    • 644
    • 645
    • 646
    • 647
    • 648
    • 649
    • 650
    • 651
    • 652
    • 653
    • 654
    • 655
    • 656
    • 657
    • 658
    • 659
    • 660
    • 661
    • 662
    • 663
    • 664
    • 665
    • 666
    • 667
    • 668
    • 669
    • 670
    • 671
    • 672
    • 673
    • 674
    • 675
    • 676
    • 677
    • 678
    • 679
    • 680
    • 681
    • 682
    • 683
    • 684
    • 685
    • 686
    • 687
    • 688
    • 689
    • 690
    • 691
    • 692
    • 693
    • 694
    • 695
    • 696
    • 697
    • 698
    • 699
    • 700
    • 701
    • 702
    • 703
    • 704
    • 705
    • 706
    • 707
    • 708
    • 709
    • 710
    • 711
    • 712
    • 713
    • 714
    • 715
    • 716
    • 717
    • 718
    • 719
    • 720
    • 721
    • 722
    • 723
    • 724
    • 725
    • 726
    • 727
    • 728
    • 729
    • 730
    • 731
    • 732
    • 733
    • 734
    • 735
    • 736
    • 737
    • 738
    • 739
    • 740
    • 741
    • 742
    • 743
    • 744
    • 745
    • 746
    • 747
    • 748
    • 749
    • 750
    • 751
    • 752
    • 753
    • 754
    • 755
    • 756
    • 757
    • 758
    • 759
    • 760
    • 761
    • 762
    • 763
    • 764
    • 765
    • 766
    • 767
    • 768
    • 769
    • 770
    • 771
    • 772
    • 773
    • 774
    • 775
    • 776
    • 777
    • 778
    • 779
    • 780
    • 781
    • 782
    • 783
    • 784
    • 785
    • 786
    • 787
    • 788
    • 789
    • 790
    • 791
    • 792
    • 793
    • 794
    • 795
    • 796
    • 797
    • 798
    • 799
    • 800
    • 801
    • 802
    • 803
    • 804
    • 805
    • 806
    • 807
    • 808
    • 809
    • 810
    • 811
    • 812
    • 813
    • 814
    • 815
    • 816
    • 817
    • 818
    • 819
    • 820
    • 821
    • 822
    • 823
    • 824
    • 825
    • 826
    • 827
    • 828
    • 829
    • 830
    • 831
    • 832
    • 833
    • 834
    • 835
    • 836
    • 837
    • 838
    • 839
    • 840
    • 841
    • 842
    • 843
    • 844
    • 845
    • 846
    • 847
    • 848
    • 849
    • 850
    • 851
    • 852
    • 853
    • 854
    • 855
    • 856
    • 857
    • 858
    • 859
    • 860
    • 861
    • 862
    • 863
    • 864
    • 865
    • 866
    • 867
    • 868
    • 869
    • 870
    • 871
    • 872
    • 873
    • 874
    • 875
    • 876
    • 877
    • 878
    • 879
    • 880
    • 881
    • 882
    • 883
    • 884
    • 885
    • 886
    • 887
    • 888
    • 889
    • 890
    • 891
    • 892
    • 893
    • 894
    • 895
    • 896
    • 897
    • 898
    • 899
    • 900
    • 901
    • 902
    • 903
    • 904
    • 905
    • 906
    • 907
    • 908
    • 909
    • 910
    • 911
    • 912
    • 913
    • 914
    • 915
    • 916
    • 917
    • 918
    • 919
    • 920
    • 921
    • 922
    • 923
    • 924
    • 925
    • 926
    • 927
    • 928
    • 929
    • 930
    • 931
    • 932
    • 933
    • 934
    • 935
    • 936
    • 937
    • 938
    • 939
    • 940
    • 941
    • 942
    • 943
    • 944
    • 945
    • 946
    • 947
    • 948
    • 949
    • 950
    • 951
    • 952
    • 953
    • 954
    • 955
    • 956
    • 957
    • 958
    • 959
    • 960
    • 961
    • 962
    • 963
    • 964
    • 965
    • 966
    • 967
    • 968
    • 969
    • 970
    • 971
    • 972
    • 973
    • 974
    • 975
    • 976
    • 977
    • 978
    • 979
    • 980
    • 981
    • 982
    • 983
    • 984
    • 985
    • 986
    • 987
    • 988
    • 989
    • 990
    • 991
    • 992
    • 993
    • 994
    • 995
    • 996
    • 997
    • 998
    • 999
    • 1000
    • 1001
    • 1002
    • 1003
    • 1004
    • 1005
    • 1006
    • 1007
    • 1008
    • 1009
    • 1010
    • 1011
    • 1012
    • 1013
    • 1014
    • 1015
    • 1016
    • 1017
    • 1018
    • 1019
    • 1020
    • 1021
    • 1022
    • 1023
    • 1024
    • 1025
    • 1026
    • 1027
    • 1028
    • 1029
    • 1030
    • 1031
    • 1032
    • 1033
    • 1034
    • 1035
    • 1036
    • 1037
    • 1038
    • 1039
    • 1040
    • 1041
    • 1042
    • 1043
    • 1044
    • 1045
    • 1046
    • 1047
    • 1048
    • 1049
    • 1050
    • 1051
    • 1052
    • 1053
    • 1054
    • 1055
    • 1056
    • 1057
    • 1058
    • 1059
    • 1060
    • 1061
    • 1062
    • 1063
    • 1064
    • 1065
    • 1066
    • 1067
    • 1068
    • 1069
    • 1070
    • 1071
    • 1072
    • 1073
    • 1074
    • 1075
    • 1076
    • 1077
    • 1078
    • 1079
    • 1080
    • 1081
    • 1082
    • 1083
    • 1084
    • 1085
    • 1086
    • 1087
    • 1088
    • 1089
    • 1090
    • 1091
    • 1092
    • 1093
    • 1094
    • 1095
    • 1096
    • 1097
    • 1098
    • 1099
    • 1100
    • 1101
    • 1102
    • 1103
    • 1104
    • 1105
    • 1106
    • 1107
    • 1108
    • 1109
    • 1110
    • 1111
    • 1112
    • 1113
    • 1114
    • 1115
    • 1116
    • 1117
    • 1118
    • 1119
    • 1120
    • 1121
    • 1122
    • 1123
    • 1124
    • 1125
    • 1126
    • 1127
    • 1128
    • 1129
    • 1130
    • 1131
    • 1132
    • 1133
    • 1134
    • 1135
    • 1136
    • 1137
    • 1138
    • 1139
    • 1140
    • 1141
    • 1142
    • 1143
    • 1144
    • 1145
    • 1146
    • 1147
    • 1148
    • 1149
    • 1150
    • 1151
    • 1152
    • 1153
    • 1154
    • 1155
    • 1156
    • 1157
    • 1158
    • 1159
    • 1160
    • 1161
    • 1162
    • 1163
    • 1164
    • 1165
    • 1166
    • 1167
    • 1168
    • 1169
    • 1170
    • 1171
    • 1172
    • 1173
    • 1174
    • 1175
    • 1176
    • 1177
    • 1178
    • 1179
    • 1180
    • 1181
    • 1182
    • 1183
    • 1184
    • 1185
    • 1186
    • 1187
    • 1188
    • 1189
    • 1190
    • 1191
    • 1192
    • 1193
    • 1194
    • 1195
    • 1196
    • 1197
    • 1198
    • 1199
    • 1200
    • 1201
    • 1202
    • 1203
    • 1204
    • 1205
    • 1206
    • 1207
    • 1208
    • 1209
    • 1210
    • 1211
    • 1212
    • 1213
    • 1214
    • 1215
    • 1216
    • 1217
    • 1218
    • 1219
    • 1220
    • 1221
    • 1222
    • 1223
    • 1224
    • 1225
    • 1226
    • 1227
    • 1228
    • 1229
    • 1230
    • 1231
    • 1232
    • 1233
    • 1234
    • 1235
    • 1236
    • 1237
    • 1238
    • 1239
    • 1240
    • 1241
    • 1242
    • 1243
    • 1244
    • 1245
    • 1246
    • 1247
    • 1248
    • 1249
    • 1250
    • 1251
    • 1252
    • 1253
    • 1254
    • 1255
    • 1256
    • 1257
    • 1258
    • 1259
    • 1260
    • 1261
    • 1262
    • 1263
    • 1264
    • 1265
    • 1266
    • 1267
    • 1268
    • 1269
    • 1270
    • 1271
    • 1272
    • 1273
    • 1274
    • 1275
    • 1276
    • 1277
    • 1278
    • 1279
    • 1280
    • 1281
    • 1282
    • 1283
    • 1284
    • 1285
    • 1286
    • 1287
    • 1288
    • 1289
    • 1290
    • 1291
    • 1292
    • 1293
    • 1294
    • 1295
    • 1296
    • 1297
    • 1298
    • 1299
    • 1300
    • 1301
    • 1302
    • 1303
    • 1304
    • 1305
    • 1306
    • 1307
    • 1308
    • 1309
    • 1310
    • 1311
    • 1312
    • 1313
    • 1314
    • 1315
    • 1316
    • 1317
    • 1318
    • 1319
    • 1320
    • 1321
    • 1322
    • 1323
    • 1324
    • 1325
    • 1326
    • 1327
    • 1328
    • 1329
    • 1330
    • 1331
    • 1332
    • 1333
    • 1334
    • 1335
    • 1336
    • 1337
    • 1338
    • 1339
    • 1340
    • 1341
    • 1342
    • 1343
    • 1344
    • 1345
    • 1346
    • 1347
    • 1348
    • 1349
    • 1350
    • 1351
    • 1352
    • 1353
    • 1354
    • 1355
    • 1356
    • 1357
    • 1358
    • 1359
    • 1360
    • 1361
    • 1362
    • 1363
    • 1364
    • 1365
    • 1366
    • 1367
    • 1368
    • 1369
    • 1370
    • 1371
    • 1372
    • 1373
    • 1374
    • 1375
    • 1376
    • 1377
    • 1378
    • 1379
    • 1380
    • 1381
    • 1382
    • 1383
    • 1384
    • 1385
    • 1386
    • 1387
    • 1388
    • 1389
    • 1390
    • 1391
    • 1392
    • 1393
    • 1394
    • 1395
    • 1396
    • 1397
    • 1398
    • 1399
    • 1400
    • 1401
    • 1402
    • 1403
    • 1404
    • 1405
    • 1406
    • 1407
    • 1408
    • 1409
    • 1410
    • 1411
    • 1412
    • 1413
    • 1414
    • 1415
    • 1416
    • 1417
    • 1418
    • 1419
    • 1420
    • 1421
    • 1422
    • 1423
    • 1424
    • 1425
    • 1426
    • 1427
    • 1428
    • 1429
    • 1430
    • 1431
    • 1432
    • 1433
    • 1434
    • 1435
    • 1436
    • 1437
    • 1438
    • 1439
    • 1440
    • 1441
    • 1442
    • 1443
    • 1444
    • 1445
    • 1446
    • 1447
    • 1448
    • 1449
    • 1450
    • 1451
    • 1452
    • 1453
    • 1454
    • 1455
    • 1456
    • 1457
    • 1458
    • 1459
    • 1460
    • 1461
    • 1462
    • 1463
    • 1464
    • 1465
    • 1466
    • 1467
    • 1468
    • 1469
    • 1470
    • 1471
    • 1472
    • 1473
    • 1474
    • 1475
    • 1476
    • 1477
    • 1478
    • 1479
    • 1480
    • 1481
    • 1482
    • 1483
    • 1484
    • 1485
    • 1486
    • 1487
    • 1488
    • 1489
    • 1490
    • 1491
    • 1492
    • 1493
    • 1494
    • 1495
    • 1496
    • 1497
    • 1498
    • 1499
    • 1500
    • 1501
    • 1502
    • 1503
    • 1504
    • 1505
    • 1506
    • 1507
    • 1508
    • 1509
    • 1510
    • 1511
    • 1512
    • 1513
    • 1514
    • 1515
    • 1516
    • 1517
    • 1518
    • 1519
    • 1520
    • 1521
    • 1522
    • 1523
    • 1524
    • 1525
    • 1526
    • 1527
    • 1528
    • 1529
    • 1530
    • 1531
    • 1532
    • 1533
    • 1534
    • 1535
    • 1536
    • 1537
    • 1538
    • 1539
    • 1540
    • 1541
    • 1542
    • 1543
    • 1544
    • 1545
    • 1546
    • 1547
    • 1548
    • 1549
    • 1550
    • 1551
    • 1552
    • 1553
    • 1554
    • 1555
    • 1556
    • 1557
    • 1558
    • 1559
    • 1560
    • 1561
    • 1562
    • 1563
    • 1564
    • 1565
    • 1566
    • 1567
    • 1568
    • 1569
    • 1570
    • 1571
    • 1572
    • 1573
    • 1574
    • 1575
    • 1576
    • 1577
    • 1578
    • 1579
    • 1580
    • 1581
    • 1582
    • 1583
    • 1584
    • 1585
    • 1586
    • 1587
    • 1588
    • 1589
    • 1590
    • 1591
    • 1592
    • 1593
    • 1594
    • 1595
    • 1596
    • 1597
    • 1598
    • 1599
    • 1600
    • 1601
    • 1602
    • 1603
    • 1604
    • 1605
    • 1606
    • 1607
    • 1608
    • 1609
    • 1610
    • 1611
    • 1612
    • 1613
    • 1614
    • 1615
    • 1616
    • 1617
    • 1618
    • 1619
    • 1620
    • 1621
    • 1622
    • 1623
    • 1624
    • 1625
    • 1626
    • 1627
    • 1628
    • 1629
    • 1630
    • 1631
    • 1632
    • 1633
    • 1634
    • 1635
    • 1636
    • 1637
    • 1638
    • 1639
    • 1640
    • 1641
    • 1642
    • 1643
    • 1644
    • 1645
    • 1646
    • 1647
    • 1648
    • 1649
    • 1650
    • 1651
    • 1652
    • 1653
    • 1654
    • 1655
    • 1656
    • 1657
    • 1658
    • 1659
    • 1660
    • 1661
    • 1662
    • 1663
    • 1664
    • 1665
    • 1666
    • 1667
    • 1668
    • 1669
    • 1670
    • 1671
    • 1672
    • 1673
    • 1674
    • 1675
    • 1676
    • 1677
    • 1678
    • 1679
    • 1680
    • 1681
    • 1682
    • 1683
    • 1684
    • 1685
    • 1686
    • 1687
    • 1688
    • 1689
    • 1690
    • 1691
    • 1692
    • 1693
    • 1694
    • 1695
    • 1696
    • 1697
    • 1698
    • 1699
    • 1700
    • 1701
    • 1702
    • 1703
    • 1704
    • 1705
    • 1706
    • 1707
    • 1708
    • 1709
    • 1710
    • 1711
    • 1712
    • 1713
    • 1714
    • 1715
    • 1716
    • 1717
    • 1718
    • 1719
    • 1720
    • 1721
    • 1722
    • 1723
    • 1724
    • 1725
    • 1726
    • 1727
    • 1728
    • 1729
    • 1730
    • 1731
    • 1732
    • 1733
    • 1734
    • 1735
    • 1736
    • 1737
    • 1738
    • 1739
    • 1740
    • 1741
    • 1742
    • 1743
    • 1744
    • 1745
    • 1746
    • 1747
    • 1748
    • 1749
    • 1750
    • 1751
    • 1752
    • 1753
    • 1754
    • 1755
    • 1756
    • 1757
    • 1758
    • 1759
    • 1760
    • 1761
    • 1762
    • 1763
    • 1764
    • 1765
    • 1766
    • 1767
    • 1768
    • 1769
    • 1770
    • 1771
    • 1772
    • 1773
    • 1774
    • 1775
    • 1776
    • 1777
    • 1778
    • 1779
    • 1780
    • 1781
    • 1782
    • 1783
    • 1784
    • 1785
    • 1786
    • 1787
    • 1788
    • 1789
    • 1790
    • 1791
    • 1792
    • 1793
    • 1794
    • 1795
    • 1796
    • 1797
    • 1798
    • 1799
    • 1800
    • 1801
    • 1802
    • 1803
    • 1804
    • 1805
    • 1806
    • 1807
    • 1808
    • 1809
    • 1810
    • 1811
    • 1812
    • 1813
    • 1814
    • 1815
    • 1816
    • 1817
    • 1818
    • 1819
    • 1820
    • 1821
    • 1822
    • 1823
    • 1824
    • 1825
    • 1826
    • 1827
    • 1828
    • 1829
    • 1830
    • 1831
    • 1832
    • 1833
    • 1834
    • 1835
    • 1836
    • 1837
    • 1838
    • 1839
    • 1840
    • 1841
    • 1842
    • 1843
    • 1844
    • 1845
    • 1846
    • 1847
    • 1848
    • 1849
    • 1850
    • 1851
    • 1852
    • 1853
    • 1854
    • 1855
    • 1856
    • 1857
    • 1858
    • 1859
    • 1860
    • 1861
    • 1862
    • 1863
    • 1864
    • 1865
    • 1866
    • 1867
    • 1868
    • 1869
    • 1870
    • 1871
    • 1872
    • 1873
    • 1874
    • 1875
    • 1876
    • 1877
    • 1878
    • 1879
    • 1880
    • 1881
    • 1882
    • 1883
    • 1884
    • 1885
    • 1886
    • 1887
    • 1888
    • 1889
    • 1890
    • 1891
    • 1892
    • 1893
    • 1894
    • 1895
    • 1896
    • 1897
    • 1898
    • 1899
    • 1900
    • 1901
    • 1902
    • 1903
    • 1904
    • 1905
    • 1906
    • 1907
    • 1908
    • 1909
    • 1910
    • 1911
    • 1912
    • 1913
    • 1914
    • 1915
    • 1916
    • 1917
    • 1918
    • 1919
    • 1920
    • 1921
    • 1922
    • 1923
    • 1924
    • 1925
    • 1926
    • 1927
    • 1928
    • 1929
    • 1930
    • 1931
    • 1932
    • 1933
    • 1934
    • 1935
    • 1936
    • 1937
    • 1938
    • 1939
    • 1940
    • 1941
    • 1942
    • 1943
    • 1944
    • 1945
    • 1946
    • 1947
    • 1948
    • 1949
    • 1950
    • 1951
    • 1952
    • 1953
    • 1954
    • 1955
    • 1956
    • 1957
    • 1958
    • 1959
    • 1960
    • 1961
    • 1962
    • 1963
    • 1964
    • 1965
    • 1966
    • 1967
    • 1968
    • 1969
    • 1970
    • 1971
    • 1972
    • 1973
    • 1974
    • 1975
    • 1976
    • 1977
    • 1978
    • 1979
    • 1980
    • 1981
    • 1982
    • 1983
    • 1984
    • 1985
    • 1986
    • 1987
    • 1988
    • 1989
    • 1990
    • 1991
    • 1992
    • 1993
    • 1994
    • 1995
    • 1996
    • 1997
    • 1998
    • 1999
    • 2000
    • 2001
    • 2002
    • 2003
    • 2004
    • 2005
    • 2006
    • 2007
    • 2008
    • 2009
    • 2010
    • 2011
    • 2012
    • 2013
    • 2014
    • 2015
    • 2016
    • 2017
    • 2018
    • 2019
    • 2020
    • 2021
    • 2022
    • 2023
    • 2024
    • 2025
    • 2026
    • 2027
    • 2028
    • 2029
    • 2030
    • 2031
    • 2032
    • 2033
    • 2034
    • 2035
    • 2036
    • 2037
    • 2038
    • 2039
    • 2040
    • 2041
    • 2042
    • 2043
    • 2044
    • 2045
    • 2046
    • 2047
    • 2048
    • 2049
    • 2050
    • 2051
    • 2052
    • 2053
    • 2054
    • 2055
    • 2056
    • 2057
    • 2058
    • 2059
    • 2060
    • 2061
    • 2062
    • 2063
    • 2064
    • 2065
    • 2066
    • 2067
    • 2068
    • 2069
    • 2070
    • 2071
    • 2072
    • 2073
    • 2074
    • 2075
    • 2076
    • 2077
    • 2078
    • 2079
    • 2080
    • 2081
    • 2082
    • 2083
    • 2084
    • 2085
    • 2086
    • 2087
    • 2088
    • 2089
    • 2090
    • 2091
    • 2092
    • 2093
    • 2094
    • 2095
    • 2096
    • 2097
    • 2098
    • 2099
    • 2100
    • 2101
    • 2102
    • 2103
    • 2104
    • 2105
    • 2106
    • 2107
    • 2108
    • 2109
    • 2110
    • 2111
    • 2112
    • 2113
    • 2114
    • 2115
    • 2116
    • 2117
    • 2118
    • 2119
    • 2120
    • 2121
    • 2122
    • 2123
    • 2124
    • 2125
    • 2126
    • 2127
    • 2128
    • 2129
    • 2130
    • 2131
    • 2132
    • 2133
    • 2134
    • 2135
    • 2136
    • 2137
    • 2138
    • 2139
    • 2140
    • 2141
    • 2142
    • 2143
    • 2144
    • 2145
    • 2146
    • 2147
    • 2148
    • 2149
    • 2150
    • 2151
    • 2152
    • 2153
    • 2154
    • 2155
    • 2156
    • 2157
    • 2158
    • 2159
    • 2160
    • 2161
    • 2162
    • 2163
    • 2164
    • 2165
    • 2166
    • 2167
    • 2168
    • 2169
    • 2170
    • 2171
    • 2172
    • 2173
    • 2174
    • 2175
    • 2176
    • 2177
    • 2178
    • 2179
    • 2180
    • 2181
    • 2182
    • 2183
    • 2184
    • 2185
    • 2186
    • 2187
    • 2188
    • 2189
    • 2190
    • 2191
    • 2192
    • 2193
    • 2194
    • 2195
    • 2196
    • 2197
    • 2198
    • 2199
    • 2200
    • 2201
    • 2202
    • 2203
    • 2204
    • 2205
    • 2206
    • 2207
    • 2208
    • 2209
    • 2210
    • 2211
    • 2212
    • 2213
    • 2214
    • 2215
    • 2216
    • 2217
    • 2218
    • 2219
    • 2220
    • 2221
    • 2222
    • 2223
    • 2224
    • 2225
    • 2226
    • 2227
    • 2228
    • 2229
    • 2230
    • 2231
    • 2232
    • 2233
    • 2234
    • 2235
    • 2236
    • 2237
    • 2238
    • 2239
    • 2240
    • 2241
    • 2242
    • 2243
    • 2244
    • 2245
    • 2246
    • 2247
    • 2248
    • 2249
    • 2250
    • 2251
    • 2252
    • 2253
    • 2254
    • 2255
    • 2256
    • 2257
    • 2258
    • 2259
    • 2260
    • 2261
    • 2262
    • 2263
    • 2264
    • 2265
    • 2266
    • 2267
    • 2268
    • 2269
    • 2270
    • 2271
    • 2272
    • 2273
    • 2274
    • 2275
    • 2276
    • 2277
    • 2278
    • 2279
    • 2280
    • 2281
    • 2282
    • 2283
    • 2284
    • 2285
    • 2286
    • 2287
    • 2288
    • 2289
    • 2290
    • 2291
    • 2292
    • 2293
    • 2294
    • 2295
    • 2296
    • 2297
    • 2298
    • 2299
    • 2300
    • 2301
    • 2302
    • 2303
    • 2304
    • 2305
    • 2306
    • 2307
    • 2308
    • 2309
    • 2310
    • 2311
    • 2312
    • 2313
    • 2314
    • 2315
    • 2316
    • 2317
    • 2318
    • 2319
    • 2320
    • 2321
    • 2322
    • 2323
    • 2324
    • 2325
    • 2326
    • 2327
    • 2328
    • 2329
    • 2330
    • 2331
    • 2332
    • 2333
    • 2334
    • 2335
    • 2336
    • 2337
    • 2338
    • 2339
    • 2340
    • 2341
    • 2342
    • 2343
    • 2344
    • 2345
    • 2346
    • 2347
    • 2348
    • 2349
    • 2350
    • 2351
    • 2352
    • 2353
    • 2354
    • 2355
    • 2356
    • 2357
    • 2358
    • 2359
    • 2360
    • 2361
    • 2362
    • 2363
    • 2364
    • 2365
    • 2366
    • 2367
    • 2368
    • 2369
    • 2370
    • 2371
    • 2372
    • 2373
    • 2374
    • 2375
    • 2376
    • 2377
    • 2378
    • 2379
    • 2380
    • 2381
    • 2382
    • 2383
    • 2384
    • 2385
    • 2386
    • 2387
    • 2388
    • 2389
    • 2390
    • 2391
    • 2392
    • 2393
    • 2394
    • 2395
    • 2396
    • 2397
    • 2398
    • 2399
    • 2400
    • 2401
    • 2402
    • 2403
    • 2404
    • 2405
    • 2406
    • 2407
    • 2408
    • 2409
    • 2410
    • 2411
    • 2412
    • 2413
    • 2414
    • 2415
    • 2416
    • 2417
    • 2418
    • 2419
    • 2420
    • 2421
    • 2422
    • 2423
    • 2424
    • 2425
    • 2426
    • 2427
    • 2428
    • 2429
    • 2430
    • 2431
    • 2432
    • 2433
    • 2434
    • 2435
    • 2436
    • 2437
    • 2438
    • 2439
    • 2440
    • 2441
  • 相关阅读:
    派克斯电脑全局改IP如何辅助捉妖游戏
    实战指南:使用 xUnit 和 ASP.NET Core 进行集成测试【完整教程】
    【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)
    聪明人和傻子和程序员
    磁盘分区如何分? 电脑磁盘分区免费软件指南!
    应用开发平台能力扩展——集成echarts组件实现图表展现能力
    【密码学代码分享】突破ECDSA算法封装--JS无三方包纯手写ECDSA
    5G 3GPP全球频谱介绍
    leetcode 马拉松 6.27
    【数据结构】图的存储结构及实现(邻接表和十字链表)
  • 原文地址:https://blog.csdn.net/u012549626/article/details/128067218