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 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;
 
     private Configuration(Builder builder){
          = builder.upHost;
          = builder.upHostBackup;
          = getIp(builder);
          = getPort(builder);
 
          = builder.chunkSize;
          = builder.putThreshold;
 
          = builder.connectTimeout;
          = builder.responseTimeout;
 
          = builder.recorder;
          = getKeyGen(builder.keyGen);
 
          = builder.retryMax;
 
          = builder.proxy;
 
          = builder.urlConverter;
     }
 
     private static int getPort(Builder builder){
         if (builder.urlConverter != null){
             return 80;
         }
         return builder.upPort;
     }
 
    private static String getIp(Builder builder){
        if (builder.urlConverter != null){
            return null;
        }
        return builder.upIp;
    }
    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 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;
        public Builder(){
            this. = ..;
            this. = ..;
            this. = ..;
            this. = 8888;
        }
        private UrlConverter urlConverter = null;
        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 Configuration build(){
            return new Configuration(this);
        }
    }
New to GrepCode? Check out our FAQ X