7牛云实现上传本地文件夹的所有文件
7牛云上传文件只能一个一个上传太麻烦了也不能把文件夹打包成zip进行上传解压,我就自己手写了个以下是我实现的过程。
1.我是用java写的但要用到2个jar包所以我创建了个maven工程来实现用不到spring,springBoot当然他们也能实现。首先在pom.xml中导入以下依赖就可以了。
com.google.code.gson gson 2.9.1 com.qiniu qiniu-java-sdk 7.9.3
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);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
