开发者社区 > 云原生 > Serverless > 正文

我想在这里把文件压缩成压缩包 上传到oss 有没有类似的案例呀?

我想在这里把文件压缩成压缩包 上传到oss 有没有类似的案例呀?

提问30.png

展开
收起
码字王 2023-04-07 11:22:22 735 0
4 条回答
写回答
取消 提交回答
  • 没有 您这个应该是需要本地执行的逻辑。

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-04-07 17:57:19
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。也就是说阿里云OSS提供的是云存储服务,如果你想要上传压缩包到OSS的话,那么需要你现在本地代码中将上传文件压缩之后再调用OSS SDK通过简单上传的方式上传到OSS,超过5G的需要采用分片上传的方式。

    2023-04-07 17:57:11
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    1.将待上传的文件进行压缩,可以使用WinRAR等工具进行压缩。WinRAR支持多种压缩格式,例如ZIP、RAR等,可以根据实际需求选择合适的格式。

    2.登录阿里云控制台,找到OSS服务,创建一个bucket用于存放上传的压缩包。

    3.在bucket中创建一个目录,用于存放上传的压缩包。

    4.使用阿里云提供的OSS API或者第三方SDK,将压缩包上传到指定目录中。常用的API有Java SDK、Python SDK等,上传操作通常需要提供access key、secret key等验证信息,以及要上传的压缩包的本地路径和上传路径等参数。

    5.在上传完成后,根据需要设置bucket的访问权限,例如公共读写或者私有读写等。

    2023-04-07 17:17:51
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,实现思路是使用Java的ZipOutputStream类来将文件压缩成zip压缩包,然后使用阿里云OSS Java SDK将压缩包上传到OSS。

    这是代码示例,可以参考下:

    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.OSSClientBuilder;
    import com.aliyun.oss.model.ObjectMetadata;
    import com.aliyun.oss.model.PutObjectRequest;
    import com.aliyun.oss.model.PutObjectResult;
    
    public class OSSUploader {
        public static void main(String[] args) throws Exception {
            String endpoint = "your-endpoint"; // OSS的endpoint
            String accessKeyId = "your-accessKeyId"; // 访问OSS的AccessKeyId
            String accessKeySecret = "your-accessKeySecret"; // 访问OSS的AccessKeySecret
            String bucketName = "your-bucketName"; // 存储压缩包的OSS bucket名称
            String objectName = "example.zip"; // 存储的压缩包名称
            String filePath = "your-filePath"; // 需要压缩的文件路径
    
            // 创建OSSClient实例
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    
            // 创建压缩文件流
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ZipOutputStream zos = new ZipOutputStream(baos);
    
            // 将需要压缩的文件添加到ZipOutputStream中
            File file = new File(filePath);
            FileInputStream fis = new FileInputStream(file);
            ZipEntry zipEntry = new ZipEntry(file.getName());
            zos.putNextEntry(zipEntry);
            byte[] buffer = new byte[1024];
            int len;
            while ((len = fis.read(buffer)) > 0) {
                zos.write(buffer, 0, len);
            }
            fis.close();
            zos.closeEntry();
    
            // 关闭ZipOutputStream
            zos.close();
    
            // 将压缩包上传到OSS
            byte[] data = baos.toByteArray();
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setContentLength(data.length);
            PutObjectRequest request = new PutObjectRequest(bucketName, objectName, new ByteArrayInputStream(data), metadata);
            PutObjectResult result = ossClient.putObject(request);
    
            // 输出上传结果
            System.out.println(result.getETag());
    
            // 关闭OSSClient
            ossClient.shutdown();
        }
    }
    
    
    2023-04-07 12:24:10
    赞同 展开评论 打赏

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载