jimu-decompiled/sources/com/alibaba/sdk/android/oss/internal/InternalRequestOperation.java
2025-05-13 19:24:51 +02:00

201 lines
9.2 KiB
Java

package com.alibaba.sdk.android.oss.internal;
import android.content.Context;
import android.os.Build;
import android.text.TextUtils;
import com.alibaba.sdk.android.oss.ClientConfiguration;
import com.alibaba.sdk.android.oss.ClientException;
import com.alibaba.sdk.android.oss.ServiceException;
import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback;
import com.alibaba.sdk.android.oss.common.HttpMethod;
import com.alibaba.sdk.android.oss.common.OSSLog;
import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider;
import com.alibaba.sdk.android.oss.common.utils.DateUtil;
import com.alibaba.sdk.android.oss.common.utils.OSSUtils;
import com.alibaba.sdk.android.oss.common.utils.VersionInfoUtils;
import com.alibaba.sdk.android.oss.exception.InconsistentException;
import com.alibaba.sdk.android.oss.internal.ResponseParsers;
import com.alibaba.sdk.android.oss.model.OSSRequest;
import com.alibaba.sdk.android.oss.model.OSSResult;
import com.alibaba.sdk.android.oss.model.PutObjectRequest;
import com.alibaba.sdk.android.oss.model.PutObjectResult;
import com.alibaba.sdk.android.oss.network.ExecutionContext;
import com.alibaba.sdk.android.oss.network.OSSRequestTask;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import okhttp3.Dispatcher;
import okhttp3.OkHttpClient;
/* loaded from: classes.dex */
public class InternalRequestOperation {
private static ExecutorService g = Executors.newFixedThreadPool(5, new ThreadFactory() { // from class: com.alibaba.sdk.android.oss.internal.InternalRequestOperation.1
@Override // java.util.concurrent.ThreadFactory
public Thread newThread(Runnable runnable) {
return new Thread(runnable, "oss-android-api-thread");
}
});
private volatile URI a;
private OkHttpClient b;
private Context c;
private OSSCredentialProvider d;
private int e;
private ClientConfiguration f;
public InternalRequestOperation(Context context, final URI uri, OSSCredentialProvider oSSCredentialProvider, ClientConfiguration clientConfiguration) {
this.e = 2;
this.c = context;
this.a = uri;
this.d = oSSCredentialProvider;
this.f = clientConfiguration;
OkHttpClient.Builder hostnameVerifier = new OkHttpClient.Builder().followRedirects(false).followSslRedirects(false).retryOnConnectionFailure(false).cache(null).hostnameVerifier(new HostnameVerifier(this) { // from class: com.alibaba.sdk.android.oss.internal.InternalRequestOperation.2
@Override // javax.net.ssl.HostnameVerifier
public boolean verify(String str, SSLSession sSLSession) {
return HttpsURLConnection.getDefaultHostnameVerifier().verify(uri.getHost(), sSLSession);
}
});
if (clientConfiguration != null) {
Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(clientConfiguration.e());
hostnameVerifier.connectTimeout(clientConfiguration.a(), TimeUnit.MILLISECONDS).readTimeout(clientConfiguration.j(), TimeUnit.MILLISECONDS).writeTimeout(clientConfiguration.j(), TimeUnit.MILLISECONDS).dispatcher(dispatcher);
if (clientConfiguration.h() != null && clientConfiguration.i() != 0) {
hostnameVerifier.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(clientConfiguration.h(), clientConfiguration.i())));
}
this.e = clientConfiguration.f();
}
this.b = hostnameVerifier.build();
}
public OSSAsyncTask<PutObjectResult> a(PutObjectRequest putObjectRequest, final OSSCompletedCallback<PutObjectRequest, PutObjectResult> oSSCompletedCallback) {
OSSLog.a(" Internal putObject Start ");
RequestMessage requestMessage = new RequestMessage();
requestMessage.d(putObjectRequest.b());
requestMessage.a(this.a);
requestMessage.a(HttpMethod.PUT);
requestMessage.a(putObjectRequest.c());
requestMessage.c(putObjectRequest.g());
if (putObjectRequest.j() != null) {
requestMessage.a(putObjectRequest.j());
}
if (putObjectRequest.k() != null) {
requestMessage.d(putObjectRequest.k());
}
if (putObjectRequest.l() != null) {
requestMessage.a(putObjectRequest.l());
}
if (putObjectRequest.d() != null) {
requestMessage.d().put("x-oss-callback", OSSUtils.a(putObjectRequest.d()));
}
if (putObjectRequest.e() != null) {
requestMessage.d().put("x-oss-callback-var", OSSUtils.a(putObjectRequest.e()));
}
OSSLog.a(" populateRequestMetadata ");
OSSUtils.a(requestMessage.d(), putObjectRequest.f());
OSSLog.a(" canonicalizeRequestMessage ");
a(requestMessage, putObjectRequest);
OSSLog.a(" ExecutionContext ");
ExecutionContext executionContext = new ExecutionContext(a(), putObjectRequest, this.c);
if (oSSCompletedCallback != null) {
executionContext.a(new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() { // from class: com.alibaba.sdk.android.oss.internal.InternalRequestOperation.4
@Override // com.alibaba.sdk.android.oss.callback.OSSCompletedCallback
public void a(PutObjectRequest putObjectRequest2, PutObjectResult putObjectResult) {
InternalRequestOperation.this.a(putObjectRequest2, putObjectResult, oSSCompletedCallback);
}
@Override // com.alibaba.sdk.android.oss.callback.OSSCompletedCallback
public void a(PutObjectRequest putObjectRequest2, ClientException clientException, ServiceException serviceException) {
oSSCompletedCallback.a(putObjectRequest2, clientException, serviceException);
}
});
}
if (putObjectRequest.i() != null) {
executionContext.a(putObjectRequest.i());
}
executionContext.a(putObjectRequest.h());
OSSRequestTask oSSRequestTask = new OSSRequestTask(requestMessage, new ResponseParsers.PutObjectResponseParser(), executionContext, this.e);
OSSLog.a(" call OSSRequestTask ");
return OSSAsyncTask.a(g.submit(oSSRequestTask), executionContext);
}
private boolean a(boolean z) {
String host;
if (!z || this.c == null) {
return false;
}
if (Build.VERSION.SDK_INT >= 14) {
host = System.getProperty("http.proxyHost");
} else {
host = android.net.Proxy.getHost(this.c);
}
String h = this.f.h();
if (!TextUtils.isEmpty(h)) {
host = h;
}
return TextUtils.isEmpty(host);
}
public OkHttpClient a() {
return this.b;
}
private void a(RequestMessage requestMessage, OSSRequest oSSRequest) {
Map<String, String> d = requestMessage.d();
if (d.get("Date") == null) {
d.put("Date", DateUtil.a());
}
if ((requestMessage.j() == HttpMethod.POST || requestMessage.j() == HttpMethod.PUT) && OSSUtils.c(d.get("Content-Type"))) {
d.put("Content-Type", OSSUtils.a((String) null, requestMessage.n(), requestMessage.k()));
}
requestMessage.c(a(this.f.m()));
requestMessage.a(this.d);
requestMessage.f(this.f.n());
requestMessage.b(this.f.l());
requestMessage.b(this.f.d());
requestMessage.d().put("User-Agent", VersionInfoUtils.a(this.f.c()));
boolean z = false;
if (requestMessage.d().containsKey("Range") || requestMessage.l().containsKey("x-oss-process")) {
requestMessage.a(false);
}
requestMessage.e(OSSUtils.a(this.a.getHost(), this.f.b()));
if (oSSRequest.a() == OSSRequest.CRC64Config.NULL) {
z = this.f.k();
} else if (oSSRequest.a() == OSSRequest.CRC64Config.YES) {
z = true;
}
requestMessage.a(z);
oSSRequest.a(z ? OSSRequest.CRC64Config.YES : OSSRequest.CRC64Config.NO);
}
private <Request extends OSSRequest, Result extends OSSResult> void a(Request request, Result result) throws ClientException {
if (request.a() == OSSRequest.CRC64Config.YES) {
try {
OSSUtils.a(result.a(), result.c(), result.b());
} catch (InconsistentException e) {
throw new ClientException(e.getMessage(), e);
}
}
}
/* JADX INFO: Access modifiers changed from: private */
public <Request extends OSSRequest, Result extends OSSResult> void a(Request request, Result result, OSSCompletedCallback<Request, Result> oSSCompletedCallback) {
try {
a((InternalRequestOperation) request, (Request) result);
if (oSSCompletedCallback != null) {
oSSCompletedCallback.a(request, result);
}
} catch (ClientException e) {
if (oSSCompletedCallback != null) {
oSSCompletedCallback.a(request, e, null);
}
}
}
}