7牛云实现上传本地文件夹的所有文件

7牛云上传文件只能一个一个上传太麻烦了也不能把文件夹打包成zip进行上传解压,我就自己手写了个以下是我实现的过程。

1.我是用java写的但要用到2个jar包所以我创建了个maven工程来实现用不到spring,springBoot当然他们也能实现。首先在pom.xml中导入以下依赖就可以了。

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.9.1</version>
        </dependency>
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>7.9.3</version>
        </dependency>

2.实现类代码如下我写了注解很详细。可以参照下。就完成了本地文件夹的上传

package org.xiaobing;

/**
 * @author Bing
 * @version 1.0
 * @data 2023/2/2 16:40
 * @注释 实现7牛云把本地文件夹上传
 */

import com.google.gson.Gson;

import com.qiniu.common.QiniuException;

import com.qiniu.http.Response;

import com.qiniu.storage.Configuration;

import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;

import com.qiniu.storage.model.DefaultPutRet;

import com.qiniu.util.Auth;

import java.io.File;

public class QiNiuUpload {
    /**文件上传到7牛云中
     * 7牛云的上传方法中的key为你在七牛云对应的位置
     * 如key为element-ui/src/utils/popup/index.js
     * 就表示把该index.js对应储,index.js在你空间名称的位置为element-ui/src/utils/popup/index.js
     * localPath为文件的地址
    */
    private static void upload(String key, String localPath) {
        //根据自己的对象空间的地址选(华南)
        Configuration cfg = new Configuration(Region.huanan());
        UploadManager uploadManager = new UploadManager(cfg);
        //你7牛云的accessKey和secretKey 填进去进行
        Auth auth = Auth.create("", "");
        //你7牛云的空间名称
        String upToken = auth.uploadToken("xiaolaiting");
        try {
            //开始上传
            Response response = uploadManager.put(localPath, key, upToken);
            //解析上传成功的结果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            System.out.println(putRet.key);
            System.out.println(putRet.hash);
        } catch (QiniuException e) {
            e.printStackTrace();
        }
    }
    //实现上传的方法file为本地上传的文件夹
    private static void uploadFiles(File file) {
        //对该文件夹下的文件收集起来
        File[] files = file.listFiles();
        for (File file1 : files) {
            //如果是文件则进入
            if (file1.isFile()) {
                //对key进行构造生成原来文件夹的结构
                String key  = "";
                //获取该文件的地址
                String path = file.getAbsolutePath() + "\\" + file1.getName();
                /**例如D:\element-ui\package.json的文件地址
                 * 则要想有一样的目录结构则key应为element-ui/package.json
                 * 对path进行剔除\生成element-ui/package.json该格式
                 */
                String[] split = path.split("\\\\");
                for (int i = 1; i < split.length; i++) {
                    if (key.equals("")) {
                        key = split[i];
                    } else {
                        key = key + "/" + split[i];
                    }
                }
                //进行上传
                upload(key, path);
            }
            //如果是文件夹则进入该文件夹递归调用
            else {
                uploadFiles(file1);
            }
        }
    }
    //测试方法
    public static void main(String[] args) throws Exception {
        //上传文件夹的地址
        File file = new File("D:\\element-ui");
        //实现上传
        uploadFiles(file);
    }
}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,以下是Java代码实现七牛云上传本地图片到指定文件夹,并自定义文件名的示例: ```java import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.util.Auth; import java.io.File; public class QiniuUploader { // 七牛云配置信息 private static final String ACCESS_KEY = "your_access_key_here"; private static final String SECRET_KEY = "your_secret_key_here"; private static final String BUCKET_NAME = "your_bucket_name_here"; // 上传文件到指定文件夹,并自定义文件名 public static void uploadFile(String filePath, String folder, String fileName) { // 构造一个带指定Zone对象的配置类 Configuration cfg = new Configuration(Zone.autoZone()); // 创建上传管理器 UploadManager uploadManager = new UploadManager(cfg); // 生成上传凭证,然后准备上传 Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); String upToken = auth.uploadToken(BUCKET_NAME); try { // 上传文件 uploadManager.put(filePath, folder + "/" + fileName, upToken); // 打印上传结果 System.out.println("上传成功"); } catch (Exception ex) { ex.printStackTrace(); System.out.println("上传失败"); } } public static void main(String[] args) { // 测试上传 String filePath = "your_local_file_path_here"; String folder = "your_destination_folder_here"; String fileName = "your_custom_file_name_here"; uploadFile(filePath, folder, fileName); } } ``` 需要注意的是,你需要将代码中的 `your_access_key_here`、`your_secret_key_here` 和 `your_bucket_name_here` 替换为你自己的七牛云配置信息,将 `your_local_file_path_here`、`your_destination_folder_here` 和 `your_custom_file_name_here` 替换为你自己的本地文件路径、目标文件夹和自定义文件名。另外,你需要在代码中引入七牛云 SDK 的相关依赖包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小冰糖495

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值