Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.qiniu.android.storage;
  
  
 
 import java.io.File;
 
 public final class Configuration {

    
断点上传时的分块大小(默认的分块大小, 不建议改变)
 
     public static final int BLOCK_SIZE = 4 * 1024 * 1024;

    
默认上传服务器
 
     public final String upHost;

    
备用上传服务器,当默认服务器网络连接失败时使用
 
     public final String upHostBackup;

    
备用上传服务器Ip,当默认服务器域名解析失败时使用
 
     public final String upIp;
     public final String upIp2;

    
指定上传端口
 
     public final int upPort;
 
     public final Recorder recorder;
     public final KeyGenerator keyGen;
 
     public final Proxy proxy;

    
断点上传时的分片大小(可根据网络情况适当调整)
 
     public final int chunkSize;

    
如果文件大小大于此值则使用断点上传, 否则使用Form上传
 
     public final int putThreshold;

    
连接超时时间,单位 秒
 
     public final int connectTimeout;

    
服务器响应超时时间 单位 秒
 
     public final int responseTimeout;

    
上传失败重试次数
 
     public final int retryMax;

    
特别定制的url转换
 
     public UrlConverter urlConverter;
 
     public DnsManager dns;
 
     private Configuration(Builder builder) {
          = builder.upHost;
          = builder.upHostBackup;
          = builder.upIp;
          = builder.upIp2;
          = getPort(builder);
 
          = builder.chunkSize;
          = builder.putThreshold;
 
          = builder.connectTimeout;
          = builder.responseTimeout;
 
          = builder.recorder;
          = getKeyGen(builder.keyGen);
 
          = builder.retryMax;
 
          = builder.proxy;
         = builder.urlConverter;
         = initDns(builder);
    }
    private static DnsManager initDns(Builder builder) {
        DnsManager d = builder.dns;
        if (d == null) {
            IResolver r1 = AndroidDnsServer.defaultResolver();
            IResolver r2 = null;
            try {
                r2 = new Resolver(InetAddress.getByName("114.114.115.115"));
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            d = new DnsManager(.new IResolver[]{r1r2});
        }
        d.putHosts("upload.qiniu.com"builder.upIp);
        d.putHosts("upload.qiniu.com"builder.upIp2);
        d.putHosts("up.qiniu.com"builder.upIp);
        d.putHosts("up.qiniu.com"builder.upIp2);
        return d;
    }
    private static int getPort(Builder builder) {
        if (builder.urlConverter != null) {
            return 80;
        }
        return builder.upPort;
    }
    private KeyGenerator getKeyGen(KeyGenerator keyGen) {
        if (keyGen == null) {
            keyGen = new KeyGenerator() {
                @Override
                public String gen(String keyFile file) {
                    return key + "_._" + new StringBuffer(file.getAbsolutePath()).reverse();
                }
            };
        }
        return keyGen;
    }
    public static class Builder {
        private String upHost;
        private String upHostBackup;
        private String upIp;
        private String upIp2;
        private int upPort;
        private Recorder recorder = null;
        private KeyGenerator keyGen = null;
        private Proxy proxy = null;
        private int chunkSize = 256 * 1024;
        private int putThreshold = 512 * 1024;
        private int connectTimeout = 10;
        private int responseTimeout = 60;
        private int retryMax = 5;
        private UrlConverter urlConverter = null;
        private DnsManager dns = null;
        public Builder() {
            this. = ..;
            this. = ..;
            this. = ..;
            this. = ..;
            this. = 8888;
        }
        public Builder zone(Zone zone) {
            this. = zone.upHost;
            this. = zone.upHostBackup;
            this. = zone.upIp;
            return this;
        }
        public Builder recorder(Recorder recorder) {
            this. = recorder;
            return this;
        }
        public Builder recorder(Recorder recorderKeyGenerator keyGen) {
            this. = recorder;
            this. = keyGen;
            return this;
        }
        public Builder upPort(int port) {
             = port;
            return this;
        }
        public Builder proxy(Proxy proxy) {
            this. = proxy;
            return this;
        }
        public Builder chunkSize(int size) {
            this. = size;
            return this;
        }
        public Builder putThreshhold(int size) {
            this. = size;
            return this;
        }
        public Builder connectTimeout(int timeout) {
            this. = timeout;
            return this;
        }
        public Builder responseTimeout(int timeout) {
            this. = timeout;
            return this;
        }
        public Builder retryMax(int times) {
            this. = times;
            return this;
        }
        public Builder urlConverter(UrlConverter converter) {
            this. = converter;
            return this;
        }
        public Builder dns(DnsManager dns) {
            this. = dns;
            return this;
        }
        public Configuration build() {
            return new Configuration(this);
        }
    }
New to GrepCode? Check out our FAQ X