大海话语 2021-10-20 21:01 采纳率: 87.6%
浏览 93
已结题

java中字节流设置与文件前缀

我想用表单上传 一个对象到华为桶,他们给的是一个字节流上传吧? 这个tobyte怎么赋值呢?谢谢

img

还有下面这个prfix怎么赋值呢?这是一个拼接对象名的。
前端就是一个input标签上传文件和名字等

它这个是要读取本地文件,上传 到华为云服务器的

  • 写回答

4条回答 默认 最新

  • shuangmu9768 2021-10-21 12:18
    关注
    
    
        private static String endPoint = "obs.cn-east-2.myhuaweicloud.com";
        private static String ak = "FSJCCCERT3S5H2";
        private static String sk = "7XCtFL7A6ssd344r3oHDtPXtXCvgoHxLiM4lD";
        private static String bucketname="ert-fge-daily-public";
        private static  ObsClient obsClient = new ObsClient(ak, sk, endPoint);
    
        public static String  uploadToObs( InputStream inputStream,String objectname) throws IOException {
            PutObjectRequest request = new PutObjectRequest(bucketname, objectname,inputStream);
            request.setProgressListener(new ProgressListener() {
                @Override
                public void progressChanged(ProgressStatus status) {
                    // 获取上传平均速率
                    System.out.println("AverageSpeed:" + status.getAverageSpeed());
                    // 获取上传进度百分比
                    System.out.println("TransferPercentage:" + status.getTransferPercentage());
                }
            });
            // 每上传1MB数据反馈上传进度
            request.setProgressInterval(1024 * 1024L);
            obsClient.putObject(request);
            return "https://"+bucketname+"."+endPoint+"/"+objectname;
        }
    
        public static void listObjects(){
            ListObjectsRequest request = new ListObjectsRequest(bucketname);
            // 设置每页100个对象
            request.setMaxKeys(100);
            ObjectListing result;
            do{
                result = obsClient.listObjects(request);
                for(ObsObject obsObject : result.getObjects()){
                    System.out.println("\t" + obsObject.getObjectKey());
                    System.out.println("\t" + obsObject.getOwner());
                }
                request.setMarker(result.getNextMarker());
            }while(result.isTruncated());
        }
    
        public static void deleteObject(String objectname){
            ObsClient obsClient = new ObsClient(ak, sk, endPoint);
            obsClient.deleteObject(bucketname, objectname);
        }
    
        public static boolean deleteObject2(String objectname){
            try {
                DeleteObjectsRequest deleteRequest = new DeleteObjectsRequest(bucketname);
                deleteRequest.addKeyAndVersion(objectname);
                DeleteObjectsResult deleteResult = obsClient.deleteObjects(deleteRequest);
                List<DeleteObjectsResult.DeleteObjectResult> list = deleteResult.getDeletedObjectResults();
                return list.size()>0&& objectname.equals(list.get(0).getObjectKey());
            }catch (Exception e){
            }
            return false;
        }
    
        /**
         * 列举桶
         */
        public static void listBucketst(){
            ListBucketsRequest request = new ListBucketsRequest();
            request.setQueryLocation(true);
            List<ObsBucket> buckets = obsClient.listBuckets(request);
            for(ObsBucket bucket : buckets){
                System.out.println("BucketName:" + bucket.getBucketName());
                System.out.println("CreationDate:" + DateUtils.formatDate(bucket.getCreationDate(),"yyyy-MM-dd HH:mm:ss"));
                System.out.println("Location:" + bucket.getLocation());
            }
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 赞助了问题酬金 10月20日
  • 修改了问题 10月20日
  • 展开全部

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题