使用七牛云进行文件上传以及文件删除

一、七牛云入门测试

1、注册七牛云账号,完成后选择对象存储

2、在里面创建空间,一个空间相当于一个文件夹,就是将对象上传到的地方

3、查看个人秘钥,注册完成账号后,会有一个秘钥,上传文件的时候进行授权和认证。

4、文件上传测试

进入七牛云开发者中心

 

 导入坐标:

<!--导入七牛云需要坐标-->
            <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>7.2.25</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.14.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>happy-dns-java</artifactId>
            <version>0.1.6</version>
            <scope>test</scope>
        </dependency>

文件上传:

UserController 

package com.ztt.springboot_web_05.controller;
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
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 org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * @version 1.0
 * @Author 甜甜
 * @since 2024/8/12
 */
@Controller
public class UserController {

    //进入测试页面
    @RequestMapping("/show")
    public String show(){
        return "index";
    }

    //文件上传
    @RequestMapping("/fileupload")
    public String fileupload(String uname, MultipartFile upic, HttpServletRequest request){
        System.out.println("用户名:"+uname);
        System.out.println(upic);
        System.out.println(upic.getOriginalFilename());
        System.out.println(upic.getName());


//        方式1.将文件upic以流的方式写入当前服务器磁盘(应用服务器)
//        方式2.文件服务器(七牛云)
//        构造一个带指定 Region 对象的配置类
        Configuration cfg = new Configuration(Region.autoRegion());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //...生成上传凭证,然后准备上传
        String accessKey = "HURQbCScsb6FUTMzlKsWLh5kWMO-rznq-FyfnWb-";
        String secretKey = "OpcrtNSw_6dZpt7zgCHz_C11o9QLxX1A6d4Az0nh";
        String bucket = "ztiantian";
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        String key = null;
        String name = null;

        try {
            byte[] uploadBytes = upic.getBytes();
            Auth auth = Auth.create(accessKey, secretKey);
            String upToken = auth.uploadToken(bucket);

            try {
                Response response = uploadManager.put(uploadBytes, key, upToken);
                //解析上传成功的结果
                DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
                System.out.println(putRet.key);//获取文件名
                System.out.println(putRet.hash);//获取文件hash值
                name = putRet.key;
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println(r.toString());
                try {
                    System.err.println(r.bodyString());
                } catch (QiniuException ex2) {
                    //ignore
                }
            }
        } catch (Exception ex) {
            //ignore
        }
        request.getSession().setAttribute("picname",name);

        return "success";





    }

}

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
    文件上传:
    <ol>
        <li>坐标</li>
        <li>制作页面-form表单编码</li>
        <li>通过*****接受文件</li>
    </ol>
    <hr/>
    <form action="fileupload" method="post" enctype="multipart/form-data">
        用户名:<input name="uname"/><br/>
        图片:<input name="upic" type="file"/><br/>
        <input type="submit" value="上传"/>
    </form>


</body>
</html>

测试结果: 

5.文件删除测试 

文件删除:

DeleteTest

package com.ztt.springboot_web_05.controller;

import com.qiniu.common.QiniuException;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.util.Auth;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * @author 甜甜
 * @version 1.0
 * @since 2024/8/12
 */
@Controller
public class DeleteTest {
    //进入测试页面
    @RequestMapping("/show1")
    public String show() {
        return "delete";
    }

    //文件上传
    @RequestMapping("/filedeleteload")
    public String fileupload(String uname, MultipartFile upic, HttpServletRequest request) {
        System.out.println("用户名:" + uname);
        System.out.println(upic);
        System.out.println(upic.getOriginalFilename());
        System.out.println(upic.getName());

        //构造一个带指定 Region 对象的配置类
       com.qiniu.storage.Configuration cfg = new Configuration(Region.autoRegion());
        //...其他参数参考类注释

        String accessKey = "HURQbCScsb6FUTMzlKsWLh5kWMO-rznq-FyfnWb-";
        String secretKey = "OpcrtNSw_6dZpt7zgCHz_C11o9QLxX1A6d4Az0nh";
        String bucket = "ztiantian";
        String key = "Fi274-cC2a_OFGZZ6-RsAO-nH3nr";   //七牛云中保存的文件名

        Auth auth = Auth.create(accessKey, secretKey);
        BucketManager bucketManager = new BucketManager(auth, cfg);
        try {
            bucketManager.delete(bucket, key);
        } catch (QiniuException ex) {
            //如果遇到异常,说明删除失败
            System.err.println(ex.code());
            System.err.println(ex.response.toString());
        }
        return "success";
    }
}

delete.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件删除</title>
</head>
<body>
<hr/>

文件删除:

<form action="filedeleteload" method="post" enctype="multipart/form-data">
    用户名:<input name="uname"/><br/>
    图片:<input name="upic" type="file"/><br/>
    <input type="submit" value="删除"/>
</form>

</body>
</html>

 测试结果:

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi七牛云OSS是一种适用于Delphi编程语言的七牛云对象存储服务的开发工具包。它提供了一系列功能,以简化开发人员在Delphi环境中使用七牛云OSS的操作。 首先,Delphi七牛云OSS支持断点上传和下载。这意味着我们可以在传输过程中暂停和恢复文件上传和下载,从而避免因网络中断或其他原因导致的文件传输失败。这对于大文件上传和下载非常有用,并可以节省时间和带宽。 其次,Delphi七牛云OSS提供了Bucket管理功能。Bucket是七牛云OSS中的存储空间,我们可以使用Delphi七牛云OSS来创建、删除、查询和修改Bucket。这使得我们可以方便地管理和组织我们的数据。 此外,Delphi七牛云OSS还支持目录的创建和删除。我们可以使用它来在Bucket中创建文件夹,并根据需要随时删除这些文件夹。这样有助于我们更好地组织和管理文件。 最后,Delphi七牛云OSS还提供了文件的复制和移动功能。我们可以使用它来复制和移动文件,方便地在不同的Bucket或目录之间进行文件的迁移和拷贝。 总的来说,Delphi七牛云OSS为Delphi开发人员提供了一个方便、高效的工具包,可以帮助我们更好地使用七牛云OSS的各种功能,包括断点上传下载、Bucket管理、目录创建删除、复制移动文件等。通过使用这个工具包,我们可以更轻松地开发出高质量的应用程序,并且更好地管理和操作七牛云OSS中的数据。 ### 回答2: Delphi七牛云OSS是一种使用Delphi编程语言开发的开源项目,用于实现与七牛云对象存储服务(OSS)进行交互的功能。它提供了断点上传下载、bucket管理、目录创建删除、复制移动文件等操作。 在Delphi七牛云OSS中,断点上传下载是指在上传或下载文件过程中,如果出现网络中断或其他意外情况,可以继续上次上传或下载的进度,从断点处恢复,避免重新上传或下载整个文件。 Bucket是七牛云OSS中用于存储文件的容器,Delphi七牛云OSS提供了bucket的管理功能,可以通过代码创建、删除、获取bucket的信息等操作。 目录的创建和删除是指在bucket中创建和删除文件夹,可以通过Delphi七牛云OSS的接口来实现对目录的操作。 Delphi七牛云OSS还支持文件的复制和移动功能,可以将文件从一个bucket复制到另一个bucket,或者将文件移动到指定的路径。 使用Delphi七牛云OSS,开发者可以方便地将七牛云OSS的功能集成到自己的Delphi应用程序中,实现文件存储和管理的需求。除了上述提到的功能,Delphi七牛云OSS还提供了其他丰富的接口和功能,如文件上传、下载、删除、查看、重命名等操作,开发者可以根据自己的需求进行调用和使用。 总之,Delphi七牛云OSS是一个功能强大的开源项目,通过它可以实现与七牛云OSS的交互,支持断点上传下载、bucket管理、目录创建删除、复制移动文件等功能,为开发者提供了便捷的文件存储和管理解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值