123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
-
- package com.reactlibrary;
-
- import android.annotation.SuppressLint;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Environment;
- import android.provider.MediaStore;
- import android.util.Log;
-
- import com.alibaba.sdk.android.oss.ClientConfiguration;
- import com.alibaba.sdk.android.oss.ClientException;
- import com.alibaba.sdk.android.oss.OSS;
- import com.alibaba.sdk.android.oss.OSSClient;
- import com.alibaba.sdk.android.oss.ServiceException;
- import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback;
- import com.alibaba.sdk.android.oss.callback.OSSProgressCallback;
- import com.alibaba.sdk.android.oss.common.OSSConstants;
- import com.alibaba.sdk.android.oss.common.OSSLog;
- import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider;
- import com.alibaba.sdk.android.oss.common.auth.OSSCustomSignerCredentialProvider;
- import com.alibaba.sdk.android.oss.common.auth.OSSFederationCredentialProvider;
- import com.alibaba.sdk.android.oss.common.auth.OSSFederationToken;
- import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider;
- import com.alibaba.sdk.android.oss.common.utils.IOUtils;
- import com.alibaba.sdk.android.oss.internal.OSSAsyncTask;
- import com.alibaba.sdk.android.oss.model.AbortMultipartUploadRequest;
- import com.alibaba.sdk.android.oss.model.AppendObjectRequest;
- import com.alibaba.sdk.android.oss.model.AppendObjectResult;
- import com.alibaba.sdk.android.oss.model.CompleteMultipartUploadRequest;
- import com.alibaba.sdk.android.oss.model.CompleteMultipartUploadResult;
- import com.alibaba.sdk.android.oss.model.CopyObjectRequest;
- import com.alibaba.sdk.android.oss.model.CopyObjectResult;
- import com.alibaba.sdk.android.oss.model.DeleteBucketRequest;
- import com.alibaba.sdk.android.oss.model.DeleteBucketResult;
- import com.alibaba.sdk.android.oss.model.DeleteObjectRequest;
- import com.alibaba.sdk.android.oss.model.DeleteObjectResult;
- import com.alibaba.sdk.android.oss.model.GetObjectRequest;
- import com.alibaba.sdk.android.oss.model.GetObjectResult;
- import com.alibaba.sdk.android.oss.model.HeadObjectRequest;
- import com.alibaba.sdk.android.oss.model.HeadObjectResult;
- import com.alibaba.sdk.android.oss.model.InitiateMultipartUploadRequest;
- import com.alibaba.sdk.android.oss.model.InitiateMultipartUploadResult;
- import com.alibaba.sdk.android.oss.model.ListBucketsRequest;
- import com.alibaba.sdk.android.oss.model.ListBucketsResult;
- import com.alibaba.sdk.android.oss.model.ListObjectsRequest;
- import com.alibaba.sdk.android.oss.model.ListObjectsResult;
- import com.alibaba.sdk.android.oss.model.ListPartsRequest;
- import com.alibaba.sdk.android.oss.model.ListPartsResult;
- import com.alibaba.sdk.android.oss.model.ObjectMetadata;
- import com.alibaba.sdk.android.oss.model.PartETag;
- import com.alibaba.sdk.android.oss.model.PutObjectRequest;
- import com.alibaba.sdk.android.oss.model.PutObjectResult;
- import com.alibaba.sdk.android.oss.model.ResumableUploadRequest;
- import com.alibaba.sdk.android.oss.model.ResumableUploadResult;
- import com.alibaba.sdk.android.oss.model.UploadPartRequest;
- import com.alibaba.sdk.android.oss.model.UploadPartResult;
- import com.facebook.react.bridge.Arguments;
- import com.facebook.react.bridge.Promise;
- import com.facebook.react.bridge.ReactApplicationContext;
- import com.facebook.react.bridge.ReactContext;
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
- import com.facebook.react.bridge.ReactMethod;
- import com.facebook.react.bridge.ReadableMap;
- import com.facebook.react.bridge.WritableMap;
- import com.facebook.react.modules.core.DeviceEventManagerModule;
- import com.reactlibrary.utils.FileUtils;
-
- import org.json.JSONObject;
-
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
-
- public class RNAliyunOssModule extends ReactContextBaseJavaModule {
-
- private OSS mOSS;
- private AliyunBucketManager mBucketManager;
- private AliyunObjectManager mObjectManager;
- private AliyunUploadManager mUploadManager;
- private AliyunDownloadManager mDownloadManager;
- private AliyunAuthManager mAuth;
-
- /**
- * RNAliyunOssModule constructor
- * @param reactContext
- */
- public RNAliyunOssModule(ReactApplicationContext reactContext) {
- super(reactContext);
- mAuth = new AliyunAuthManager(reactContext.getApplicationContext(), new AliyunAuthManager.AuthListener() {
- @Override
- public void onAuthFinished(OSS oss) {
- init(oss);
- }
- });
- }
-
- @Override
- public String getName() {
- return "RNAliyunOSS";
- }
-
- /**
- * enable dev log
- */
- @ReactMethod
- public void enableDevMode() {
- OSSLog.enableLog();
- }
-
- /**
- * init oss ReactMethod
- * @param oss
- */
- private void init(OSS oss) {
- mOSS = oss;
- mBucketManager = new AliyunBucketManager(mOSS);
- mObjectManager = new AliyunObjectManager(mOSS);
- mUploadManager = new AliyunUploadManager(mOSS);
- mDownloadManager = new AliyunDownloadManager(mOSS);
- }
-
- /**
- * initWithSigner ReactMethod
- * @param signature
- * @param accessKey
- * @param endPoint
- * @param configuration
- */
- @ReactMethod
- public void initWithSigner(final String signature, final String accessKey, String endPoint, ReadableMap configuration) {
- mAuth.initWithSigner(signature, accessKey, endPoint, configuration);
- }
-
- /**
- * initWithPlainTextAccessKey ReactMethod
- * @param accessKeyId
- * @param accessKeySecret
- * @param endPoint
- * @param configuration
- */
- @ReactMethod
- public void initWithPlainTextAccessKey(String accessKeyId, String accessKeySecret, String endPoint, ReadableMap configuration) {
- mAuth.initWithPlainTextAccessKey(accessKeyId, accessKeySecret, endPoint, configuration);
- }
-
- /**
- * initWithSecurityToken ReactMethod
- * @param securityToken
- * @param accessKeyId
- * @param accessKeySecret
- * @param endPoint
- * @param configuration
- */
- @ReactMethod
- public void initWithSecurityToken(String securityToken, String accessKeyId, String accessKeySecret, String endPoint, ReadableMap configuration) {
- mAuth.initWithSecurityToken(securityToken, accessKeyId, accessKeySecret, endPoint, configuration);
- }
-
- /**
- * initWithServerSTS ReactMethod
- * @param server
- * @param endPoint
- * @param configuration
- */
- @ReactMethod
- public void initWithServerSTS(final String server, String endPoint, ReadableMap configuration) {
- mAuth.initWithServerSTS(server, endPoint, configuration);
- }
-
- /**
- * async Upload ReactMethod
- * @param bucketName
- * @param ossFile
- * @param sourceFile
- * @param promise
- */
- @ReactMethod
- public void asyncUpload(String bucketName, String ossFile, String sourceFile,ReadableMap options, final Promise promise) {
- mUploadManager.asyncUpload(getReactApplicationContext(), bucketName, ossFile, sourceFile, options, promise);
- }
-
- /**
- * asyncAppendObject ReactMethod
- * @param bucketName
- * @param objectKey
- * @param uploadFilePath
- * @param options
- * @param promise
- */
- @ReactMethod
- public void asyncAppendObject(String bucketName,String objectKey,String uploadFilePath,ReadableMap options,final Promise promise) {
- mUploadManager.asyncAppendObject(getReactApplicationContext(),bucketName, objectKey, uploadFilePath, options, promise);
- }
-
- /**
- * asyncResumableUpload ReactMethod
- * @param bucketName
- * @param objectKey
- * @param uploadFilePath
- * @param options
- * @param promise
- */
- @ReactMethod
- public void asyncResumableUpload(String bucketName,String objectKey,String uploadFilePath,ReadableMap options,final Promise promise) {
- mUploadManager.asyncResumableUpload(getReactApplicationContext(), bucketName, objectKey, uploadFilePath, options, promise);
- }
-
- /**
- * initMultipartUpload ReactMethod
- * @param bucketName
- * @param objectKey
- * @param promise
- */
- @ReactMethod
- public void initMultipartUpload(String bucketName,String objectKey,final Promise promise) {
- mUploadManager.initMultipartUpload(bucketName, objectKey, promise);
- }
-
- /**
- * multipartUpload ReactMethod
- * @param bucketName
- * @param objectKey
- * @param filepath
- * @param options
- * @param promise
- */
- // @SuppressLint("LongLogTag")
- @ReactMethod
- public void multipartUpload(String bucketName, String objectKey, String uploadId, String filepath, ReadableMap options,final Promise promise) {
- mUploadManager.multipartUpload(getReactApplicationContext(), bucketName, objectKey, uploadId, filepath, options, promise);
- }
-
- /**
- * AbortMultipartUploadRequest ReactMethod
- * @param bucketName
- * @param objectKey
- * @param uploadId
- */
- @ReactMethod
- public void abortMultipartUpload(String bucketName,String objectKey,String uploadId,final Promise promise) {
- mUploadManager.abortMultipartUpload(bucketName, objectKey, uploadId, promise);
- }
-
- /**
- * listParts ReactMethod
- * @param bucketName
- * @param objectKey
- * @param uploadId
- * @param promise
- */
- @ReactMethod
- public void listParts (String bucketName,String objectKey,String uploadId,final Promise promise) {
- mUploadManager.listParts(bucketName, objectKey, uploadId, promise);
- }
-
- /**
- * asyncDownload and image process ReactMethod
- * @param bucketName
- * @param ossFile
- * @param updateDate
- * @param options
- * @param promise
- */
- @ReactMethod
- public void asyncDownload(String bucketName, String ossFile, String updateDate,ReadableMap options, final Promise promise) {
- mDownloadManager.asyncDownload(getReactApplicationContext(), bucketName, ossFile, updateDate, options, promise);
- }
- /**
- * createBucket ReactMethod
- * @param bucketName
- * @param acl
- * @param region
- * @param promise
- */
- @ReactMethod
- public void asyncCreateBucket (String bucketName,String acl,String region,final Promise promise) {
- mBucketManager.asyncCreateBucket(bucketName, acl, region, promise);
- }
-
- /**
- * async getBucketName ReactMethod
- * @param bucketName
- * @param promise
- */
- @ReactMethod
- public void asyncGetBucketACL (String bucketName,final Promise promise) {
- mBucketManager.asyncGetBucketACL(bucketName,promise);
- }
-
- /**
- * list buckets ReactMethod
- * @param promise
- */
- @ReactMethod
- public void asyncListBuckets(final Promise promise) {
- mBucketManager.asyncListBuckets(promise);
- }
- /**
- * async delet bucket ReactMethod
- * @param bucketName
- * @param promise
- */
- @ReactMethod
- public void asyncDeleteBucket(String bucketName,final Promise promise) {
- mBucketManager.asyncDeleteBucket(bucketName,promise);
- }
-
- /**
- * asyncHeadObject ReactMethod
- * @param bucketName
- * @param objectKey
- * @param promise
- */
- @ReactMethod
- public void asyncHeadObject(String bucketName,String objectKey,final Promise promise) {
- mObjectManager.asyncHeadObject(bucketName,objectKey,promise);
- }
-
- /**
- * asyncListObjects ReactMethod
- * @param bucketName
- * @param prefix
- * @param promise
- */
- @ReactMethod
- public void asyncListObjects(String bucketName,ReadableMap options,final Promise promise) {
- mObjectManager.asyncListObjects(bucketName, options, promise);
- }
-
- /**
- * copy objects ReactMethod
- * @param srcBucketName
- * @param srcObjectKey
- * @param desBucketName
- * @param destObjectKey
- * @param options set object metadata
- * @param promise
- */
-
- @ReactMethod
- public void asyncCopyObject (String srcBucketName,String srcObjectKey, String desBucketName, String destObjectKey,ReadableMap options ,final Promise promise ) {
- mObjectManager.asyncCopyObject(srcBucketName,srcObjectKey,desBucketName,destObjectKey,options,promise);
- }
-
- /**
- * does object exist ReactMethod
- * @param bucketName
- * @param objectKey
- * @param promise
- */
- @ReactMethod
- public void doesObjectExist(String bucketName,String objectKey,final Promise promise) {
- mObjectManager.doesObjectExist(bucketName,objectKey,promise);
- }
-
- /**
- * asyncDeleteObject ReactMethod
- * @param bucketName
- * @param objectKey
- * @param promise
- */
- @ReactMethod
- public void asyncDeleteObject(String bucketName, String objectKey,final Promise promise) {
- mObjectManager.asyncDeleteObject(bucketName, objectKey, promise);
- }
- }
|