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=============");
                                    赠送jar包:minio-8.0.3.jar;
赠送原API文档:minio-8.0.3-javadoc.jar;
赠送源代码:minio-8.0.3-sources.jar;
赠送Maven依赖信息文件:minio-8.0.3.pom;
包含翻译后的API文档:minio-8.0.3-javadoc-API文档-文(简体)版.zip;
Maven坐标:io.minio:minio:8.0.3;
标签:minio文文档、jar包、java;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档的代码和结构保持不变,注释和说明精准翻译,请放心使用。
                                    赠送jar包:minio-8.2.2.jar;
赠送原API文档:minio-8.2.2-javadoc.jar;
赠送源代码:minio-8.2.2-sources.jar;
赠送Maven依赖信息文件:minio-8.2.2.pom;
包含翻译后的API文档:minio-8.2.2-javadoc-API文档-文(简体)-英语-对照版.zip;
Maven坐标:io.minio:minio:8.2.2;
标签:minio、jar包、java、英对照文档;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档的代码和结构保持不变,注释和说明精准翻译,请放心使用。
双语对照,边学技术、边学英语。
                                    使用第三方组件进行Minio文件上传-Androidhttps://blog.csdn.net/u013243573/article/details/79039351https://github.com/aws-amplify/aws-sdk-android/tree/main/aws-android-sdk-s3https://github.com/aws-amplify/aws-sdk-and...
                                    返回数据包含了</body>
org.xmlpull.v1.XmlPullParserException: expected: /hr read: body (position:END_TAG </body>@6:8 in java.io.StringReader@70119f3)
                                    最近打算帮朋友做个小程序,前端选择倒是很简单,直接就决定了使用uniapp,而后端想使用一些开源的优秀后台,节省开发时间,第一版本使用了若依,第二版本想使用前后端分离的EL-ADMIN,不妨还有许许多多优秀的开源后台,在这分享一下。
推荐些优秀的开源后台,站在巨人的肩膀上学习一、若依在线体验内置功能用后感二、EL-ADMIN在线体验项目简介主要特性主要功能用后感三、Hasor 介绍简介特点功能模块四、Erupt Framework  通用后台管理框架简介特性 | Features五、Pear Admin.
                                    地址:https://docs.min.io/docs/java-client-quickstart-guide.html。执行main方法,共上传两个文件,1.mp4上传到桶根目录下,1.avi上传到 桶的avi目录下,avi目录会自动创建。//检查testbucket桶是否创建,没有创建自动创建。参考示例在media-service工程 测试上传文件功能,//上传1.avi,上传到avi子目录。上传成功,通过web控制台查看文件,并预览文件。,可以唯一标识你的账户。选择public权限。
问题描述:
在使用文件上传服务时发现,官方API没有提供上传进度回调接口,而对于之前的Oss来说需要加入上传进度回调接口,我们需要自己来实现进度回调,普通上传文件实现代码如下
   MinioClient minioClient = MinioClient.builder()
                        .endpoint("http://oss.izxcs.c