美文网首页
linux命令之curl

linux命令之curl

作者: 程序员小白成长记 | 来源:发表于2020-08-06 10:49 被阅读0次

curl上传文件

后端是用的multipart控件接收

curl -X'POST' url -F"param1=value1" -F "file=@/home/work/以父之名.pdf"

测试代码清单一

  • curl
curl -XPOST http://localhost:8700/api/v1/ceph/upload/file/kbase -F "file=@/home/ubuntu/sun/father.pdf"
  • Controller
@ResponseBody
@RequestMapping(value = "/upload/file/{bucketName}", method = RequestMethod.POST)
public void uploadFile(@RequestParam(value = "file") MultipartFile file
        , HttpServletRequest request, @PathVariable String bucketName) {

    logger.debug("Enter into uploadFile");
    // 1, 获取文件名称
    String fileName = file.getOriginalFilename();
    logger.debug("[CephController][uploadFile] fileName: {}", fileName);
    // 2, 构造objectKey, objectKey生成规则, resContentId:ts:fileNameEncodeStr
    StringBuffer objectKey = new StringBuffer();
    objectKey.append(System.currentTimeMillis())
            .append(":").append(fileName);
    String objectKeyEncodeStr = "";
    try {
        // 3, objectKey编码,":"在浏览器会被自动转义为%3a
        objectKeyEncodeStr = URLEncoder.encode(objectKey.toString(), "UTF-8");
    } catch (UnsupportedEncodingException e) {
        logger.debug("file name encode error: {}", e);
        throw new RuntimeException("Fail to parse file name");
    }
    logger.debug("[CephController][uploadFile] generate objectKey: {}, encode objectKey: {}"
            , objectKey.toString(), objectKeyEncodeStr);
    try {
        // 4, 获取文件流,将文件以流的方式上传到ceph
        InputStream inputStream = file.getInputStream();
        CephClient cephClient = new CephClient(endpoint, ak, sk);
        cephClient.putObject(bucketName, objectKeyEncodeStr, inputStream, null);
    } catch (IOException e) {
        logger.debug("[CephController][uploadFile][exception] upload ceph fail, e: {}", e);
        throw new RuntimeException("Fail upload file to ceph");
    }
}

参数

curl -H

curl "url" -H "k1: v1" -H "k2: v2"

curl -X

默认为GET请求,也可通过-X来指定

-- POST请求
curl -X'POST
其中POST指定body体
eg:
curl -X'POST' "url"  -d 'json字符串'

-- GET请求
curl -X'GET'

参考:

【1】curl 命令详解~~

相关文章

  • curl命令详解

    linux命令之curl curl命令详解 1、curl命令简介 curl命令是一个利用URL规则在命令行下工作的...

  • Linux curl

    Linux curl命令详解 命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工...

  • Linux命令之curl

    获取http请求头信息,-I 只打印response header, -i 打印response header和...

  • linux命令之 curl

    前言 CURL是一个命令行工具,curl中的c表示client。用于通过指定URL来上传或者下载数据,并将数据展示...

  • linux命令之curl

    curl上传文件 后端是用的multipart控件接收 测试代码清单一 curl Controller 参数 cu...

  • linux之curl命令

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它...

  • Mac 命令行

    命令行 Linux命令 Curl curl是一个传输文件(上传、下载)的命令行工具,它支持FTP,FTPS,HTT...

  • 210629:Linux中使用curl命令发送带参数的get请求

    一. Linux中使用curl命令发送带参数的get请求和post请求 1. GET请求 curl命令 + 请求接...

  • curl 命令

    命令:curl 例子: 1、基本用法 # curl http://www.linux.com 执行后,www.li...

  • Linux命令--curl

    功能简介 curl命令是一个利用URL规则在命令行下工作的文本传输工具,支持文件上传和下载。curl支持HTTP、...

网友评论

      本文标题:linux命令之curl

      本文链接:https://www.haomeiwen.com/subject/uulzrktx.html