使用第三方組件進行Minio文件上傳-Android


使用第三方組件進行Minio文件上傳-Android

https://blog.csdn.net/u013243573/article/details/79039351
https://github.com/aws-amplify/aws-sdk-android/tree/main/aws-android-sdk-s3
https://github.com/aws-amplify/aws-sdk-android
https://blog.csdn.net/xu912996973/article/details/115073380


minio本身提供的sdk支持的是java,在Java中能正常使用,但是在Android中就會異常,貌似有大神可以自己改依賴,甚至改源碼,我這邊使用的是aws-android-sdk,很幸運的是第一次嘗試就成功了,而且文件上傳的時候可以實時展示進度.

使用第三方aws-android-sdk上傳

  • 依賴
// https://mvnrepository.com/artifact/com.amazonaws/aws-android-sdk-s3
implementation group: 'com.amazonaws', name: 'aws-android-sdk-s3', version: '2.22.5'
// https://mvnrepository.com/artifact/com.amazonaws/aws-android-sdk-mobile-client
implementation group: 'com.amazonaws', name: 'aws-android-sdk-mobile-client', version: '2.22.5'
  • service配置
 <service android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService" android:enabled="true" />

文件上傳

     AmazonS3 s3 = new AmazonS3Client(new AWSCredentials() {
            @Override
            public String getAWSAccessKeyId() {
                return NetBaseConfig.MINIO_KEY;//minio的key
            }
            @Override
            public String getAWSSecretKey() {
                return NetBaseConfig.MINIO_SECRET;//minio的密鑰
            }
        }, Region.getRegion(Regions.CN_NORTH_1),new ClientConfiguration());
        //服務器地址
        s3.setEndpoint(NetBaseConfig.MINIO_ENDPOINT);//http://ip:端口號
 
        File file = new File(filePath);//filePath是文件在Android中的地址
        //(桶名,fileName文件在桶中存放地址,文件file)
        s3.putObject(new PutObjectRequest(MINIO_BUCKET_NAME,fileName,file).withGeneralProgressListener(new ProgressListener(){
            int readedbyte = 0;
            @Override
            public void progressChanged(ProgressEvent progressEvent) {
                readedbyte += progressEvent.getBytesTransferred();
                Log.d(TAG, "progressChanged: "+fileName+"文件上傳進度:"+((float)(readedbyte / (float)file.length())*100 )+"%");
//                System.out.println("=========progress=================" + + "============URL=============");
            }
        }));
        //獲取文件上傳后訪問地址url:(http://xxx/地址?密鑰)
//        GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(MINIO_BUCKET_NAME, fileName);
//        URL url = s3.generatePresignedUrl(urlRequest);
//        System.out.println("=========URL=================" + url.toString() + "============URL=============");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM