日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Android初始化

OSSClientOSS服務的Android客戶端,為調(diào)用者提供了一系列的方法進行操作、管理存儲空間(Bucket)和文件(Object)等。在使用SDK發(fā)起對OSS的請求前,您需要初始化一個OSSClient實例,并對OSSClient實例進行必要的設置。

說明

OSSClient的生命周期需與應用程序的生命周期保持一致。即您需要在應用啟動時創(chuàng)建一個全局的OSSClient,在應用結(jié)束時銷毀OSSClient。

初始化OSSClient

重要

移動終端是一個不受信任的環(huán)境,把AccessKeyIdAccessKeySecret直接保存在終端用來加簽請求,存在極高的風險。推薦使用STS鑒權模式或自簽名模式。

您可以通過以下多種方式新建OSSClient。

說明

如果需要調(diào)用接口執(zhí)行上傳、下載等操作,請參見快速入門

列舉存儲空間所使用的OSSClient初始化方式與這里示例中的通用形式不同,具體請參考列舉存儲空間

使用STS新建OSSClient

以下代碼用于使用STS新建OSSClient。

// yourEndpoint填寫B(tài)ucket所在地域?qū)腅ndpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "yourEndpoint";
// 從STS服務獲取的臨時訪問密鑰(AccessKey ID和AccessKey Secret)。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 從STS服務獲取的安全令牌(SecurityToken)。
String securityToken = "yourSecurityToken";
// yourEndpoint填寫B(tài)ucket所在地域。以華東1(杭州)為例,region填寫為cn-hangzhou。
String region = "yourRegion";

OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken);
ClientConfiguration config = new ClientConfiguration();
config.setSignVersion(SignVersion.V4);
// 創(chuàng)建OSSClient實例。
OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
oss.setRegion(region);

使用自定義域名新建OSSClient

以下代碼用于使用自定義域名新建OSSClient。

// yourEndpoint填寫自定義域名。
String endpoint = "yourEndpoint";
// 從STS服務獲取的臨時訪問密鑰(AccessKey ID和AccessKey Secret)。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 從STS服務獲取的安全令牌(SecurityToken)。
String securityToken = "yourSecurityToken";
// yourEndpoint填寫B(tài)ucket所在地域。以華東1(杭州)為例,region填寫為cn-hangzhou。
String region = "yourRegion";

OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken);
ClientConfiguration config = new ClientConfiguration();
config.setSignVersion(SignVersion.V4);
// 創(chuàng)建OSSClient實例。
OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
oss.setRegion(region);

專有云或?qū)S杏颦h(huán)境新建OSSClient

以下代碼用于在專有云或?qū)S杏颦h(huán)境新建OSSClient。

// yourEndpoint填寫B(tài)ucket所在地域?qū)腅ndpoint。
String endpoint = "yourEndpoint";
// 從STS服務獲取的臨時訪問密鑰(AccessKey ID和AccessKey Secret)。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 從STS服務獲取的安全令牌(SecurityToken)。
String securityToken = "yourSecurityToken";
// yourEndpoint填寫B(tài)ucket所在地域。以華東1(杭州)為例,region填寫為cn-hangzhou。
String region = "yourRegion";

OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken);
ClientConfiguration configuration = new ClientConfiguration();
// 跳過CNAME解析。
List<String> excludeList = new ArrayList<>();
excludeList.add(endpoint);
configuration.setCustomCnameExcludeList(excludeList);
// 創(chuàng)建OSSClient實例。
configuration.setSignVersion(SignVersion.V4);
// 創(chuàng)建OSSClient實例。
OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
oss.setRegion(region);

配置OSSClient

ClientConfigurationOSSClient的配置類,您可通過此類來配置代理、連接超時、最大連接數(shù)等參數(shù)。

參數(shù)

描述

方法

maxConcurrentRequest

最大并發(fā)數(shù)。默認為5。

ClientConfiguration.setMaxConcurrentRequest

socketTimeout

Socket層傳輸數(shù)據(jù)的超時時間,單位為毫秒。默認為60000毫秒。

ClientConfiguration.setSocketTimeout

connectionTimeout

建立連接的超時時間,單位為毫秒。默認為60000毫秒。

ClientConfiguration.setConnectionTimeout

max_log_size

日志文件大小。默認5 MB

ClientConfiguration.setMaxLogSize

maxErrorRetry

請求失敗后最大的重試次數(shù)。默認2次。

ClientConfiguration.setMaxErrorRetry

customCnameExcludeList

列表中的元素將跳過CNAME解析。

ClientConfiguration.setCustomCnameExcludeList

proxyHost

代理服務器主機地址。

ClientConfiguration.setProxyHost

proxyPort

代理服務器端口。

ClientConfiguration.setProxyPort

mUserAgentMark

用戶代理中HTTPUser-Agent頭。

ClientConfiguration.setUserAgentMark

httpDnsEnable

是否開啟httpDns。

  • true:2.9.12以下版本默認開啟httpDns。

  • false:2.9.12及以上版本默認關閉httpDns。

ClientConfiguration.setHttpDnsEnable

checkCRC64

是否開啟CRC64校驗。取值如下:

  • true:開啟CRC64校驗。

  • false(默認值):關閉CRC64校驗。

ClientConfiguration.setCheckCRC64

followRedirectsEnable

是否開啟HTTP重定向。取值如下:

  • true:開啟HTTP重定向。

  • false(默認值):關閉HTTP重定向。

ClientConfiguration.setFollowRedirectsEnable

okHttpClient

自定義okhttpClient。

ClientConfiguration.setOkHttpClient

以下代碼用于使用ClientConfiguration配置OSSClient參數(shù)。

// yourEndpoint填寫B(tài)ucket所在地域?qū)腅ndpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "yourEndpoint";
// 從STS服務獲取的臨時訪問密鑰(AccessKey ID和AccessKey Secret)。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 從STS服務獲取的安全令牌(SecurityToken)。
String securityToken = "yourSecurityToken";
// yourEndpoint填寫B(tài)ucket所在地域。以華東1(杭州)為例,region填寫為cn-hangzhou。
String region = "yourRegion";

ClientConfiguration configuration = new ClientConfiguration();
// 設置最大并發(fā)數(shù),默認值5。
// configuration.setMaxConcurrentRequest(3);
// 設置Socket層傳輸數(shù)據(jù)的超時時間,默認值60s。
// configuration.setSocketTimeout(50000);
// 設置建立連接的超時時間,默認值60s。
// configuration.setConnectionTimeout(50000);
// 設置日志文件大小,默認值5 MB。
// configuration.setMaxLogSize(3 * 1024 * 1024);
// 請求失敗后最大的重試次數(shù),默認值2。
// configuration.setMaxErrorRetry(3);
// 列表中的元素將跳過CNAME解析。
// List<String> cnameExcludeList = new ArrayList<>();
// cnameExcludeList.add("cname");
// configuration.setCustomCnameExcludeList(cnameExcludeList);
// 代理服務器主機地址。
// configuration.setProxyHost("yourProxyHost");
// 代理服務器端口。
// configuration.setProxyPort(8080);
// 用戶代理中HTTP的User-Agent頭。
// configuration.setUserAgentMark("yourUserAgent");
// 是否開啟CRC校驗,默認值false。
// configuration.setCheckCRC64(true);
// 是否開啟HTTP重定向,默認值false。
// configuration.setFollowRedirectsEnable(true);
// 設置自定義OkHttpClient。
// OkHttpClient.Builder builder = new OkHttpClient.Builder();
// configuration.setOkHttpClient(builder.build());

OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken);
configuration.setSignVersion(SignVersion.V4);
// 創(chuàng)建OSSClient實例。
OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
oss.setRegion(region);

啟用日志

移動端的使用環(huán)境比較復雜。會出現(xiàn)部分區(qū)域或某一個時段無法正常使用OSS SDK的情況。為了進一步方便開發(fā)者定位問題,OSS SDK在開啟日志記錄功能后,會將一些日志信息記錄在本地。如需開啟,需要在OSSClient使用之前進行初始化,調(diào)用方法如下。

// 日志樣式。
// 通過調(diào)用OSSLog.enableLog()開啟在控制臺查看日志。
// 支持在手機內(nèi)置sd卡路徑\OSSLog\logs.csv下寫入日志文件,默認不開啟。
// 日志會記錄OSS操作行為中的請求數(shù)據(jù)、返回數(shù)據(jù)、異常信息。
// 例如requestId、response header等。
// 以下為日志記錄示例。
// Android版本。
// android_version:5.1  
// Android手機型號。
// mobile_model:XT1085
// 網(wǎng)絡狀況。  
// network_state:connected
// 網(wǎng)絡連接類型。
// network_type:WIFI 
// 具體的操作行為信息。
// [2017-09-05 16:54:52] - Encounter local execpiton: //java.lang.IllegalArgumentException: The bucket name is invalid. 
// A bucket name must: 
// 1) be comprised of lower-case characters, numbers or dash(-); 
// 2) start with lower case or numbers; 
// 3) be between 3-63 characters long. 
//------>end of log
// 調(diào)用此方法開啟日志。
OSSLog.enableLog();              
說明

您可以自行選擇將文件上傳至服務器,或者選擇接入阿里云日志服務上傳日志文件。

同步接口和異步接口說明

考慮到移動端開發(fā)場景下不允許在UI線程執(zhí)行網(wǎng)絡請求的編程規(guī)范,Android SDK對上傳和下載接口同時提供了同步和異步兩種調(diào)用示例,其他接口以異步調(diào)用示例為主。

  • 同步調(diào)用

    • 同步接口調(diào)用后會阻塞等待結(jié)果返回。

    • 同步接口不能在UI線程調(diào)用。

    • 調(diào)用同步接口遇到異常時,將直接拋出ClientException或者ServiceException異常。ClientException異常是指本地遇到的異常,如網(wǎng)絡異常參數(shù)非法等。ServiceException異常是指OSS返回的服務異常,如鑒權失敗、服務器錯誤等。

  • 異步調(diào)用

    • 異步接口需要在請求時傳入回調(diào)函數(shù),請求的執(zhí)行結(jié)果將在回調(diào)中處理。

    • 異步請求遇到異常時,異常會在回調(diào)函數(shù)中處理。

    • 調(diào)用異步接口時,函數(shù)會直接返回一個Task。

      OSSAsyncTask task = oss.asyncGetObejct(...);
      task.cancel(); // 取消任務。
      task.waitUntilFinished(); // 等待直到任務完成。
      GetObjectResult result = task.getResult(); // 阻塞等待結(jié)果返回。