使用 postman 上传下载 minio 文件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iv8d
V2EX    问与答

使用 postman 上传下载 minio 文件

  •  
  •   iv8d 92 天前 1769 次点击
    这是一个创建于 92 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问如何操作呢,

    curl --location --request POST 'http://localhost:9000/ojbk' \ --header 'X-Amz-Content-Sha256: e3b2c44298fc1c249afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \ --header 'X-Amz-Date: 20250709T051914Z' \ --header 'Authorization: AWS4-HMAC-SHA256 Credential=h8UH7MNIu4aMDqEBpuIa/20250709/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=7cba8aa4064a9bb3b715cb829190648c2d9b2a66c75040bf386ea441b15ee8dc' \ --form 'file=@"/C:/TPL.png"' 

    上传一直提示

    <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>InvalidRequest</Code> <Message>Invalid Request (request has multiple authentication types, please use one)</Message> <Resource>/ojbk</Resource> <RequestId>18507DB32E7AC764</RequestId> <HostId>dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8</HostId> </Error> 

    其中 ojbk 是桶名。

    上传都没调通,下载也不会。

    24 条回复    2025-07-10 15:03:06 +08:00
    wchcastle
        1
    wchcastle  
       92 天前
    你贴的是 curl ,不是 postman
    putaozhenhaochi
        2
    putaozhenhaochi  
       92 天前
    curl -X POST -H "Content-Type: multipart/form-data" -F "file=@/path/to/local/file"
    iv8d
        3
    iv8d  
    OP
       92 天前
    @wchcastle 道理一样哈,不然得给你截图了。
    iv8d
        4
    iv8d  
    OP
       92 天前
    @putaozhenhaochi 你这不行得,连地址都没有。
    iv8d
        5
    iv8d  
    OP
       92 天前
    我这问题啥什么上不了首页呢
    已经使用自带得 AWS 签名访问了,内容如题
    putaozhenhaochi
        6
    putaozhenhaochi  
       92 天前 via Android
    @iv8d 把饭喂你嘴里?
    iv8d
        7
    iv8d  
    OP
       92 天前
    @putaozhenhaochi 瞧您这脾气,我在例子里写了 curl 了。难道没覆盖你得例子?
    iv8d
        8
    iv8d  
    OP
       92 天前
    下载示例 ,这个是成功的
    ```
    curl --location --request GET 'http://localhost:9000/ojbk/检验报告单 TPL.txt' \
    --header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
    --header 'X-Amz-Date: 20250709T061848Z' \
    --header 'Authorization: AWS4-HMAC-SHA256 Credential=h8UH7MNIu4aMDqEBpuIa/20250709/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e5f3f1003a77c266ed2fe3e504e7a5f848ab639c1cae3fc31121b17a6ba25481'
    iv8d
        9
    iv8d  
    OP
       92 天前
    相同 Auth 配置下,为什么上传不行,还需要哪些设置呢
    ysy950803
        10
    ysy950803  
       92 天前
    这个问题,AI 那边怎么说? minio 应该是符合 S3 标准的吧,要不看看 S3 的文档。
    iv8d
        11
    iv8d  
    OP
       92 天前
    @ysy950803 AI 说让检查 authentication ,看 curl 内容,我确定只加了一种 auth 。在 postman 里仅选了一种,没有额外的 headers 。
    rogerhesong
        12
    rogerhesong  
       92 天前
    minio 应该没有 Authorization 这个 header 吧,
    curl --location --request POST 'https://xxx/' \
    --form 'key="t5219278254158516480.png"' \
    --form 'policy="xxxxx"' \
    --form 'bucket="xxx"' \
    --form 'x-amz-algorithm="AWS4-HMAC-SHA256"' \
    --form 'x-amz-credential="xxxx/20240606/us-east-1/s3/aws4_request"' \
    --form 'x-amz-date="20240606T022651Z"' \
    --form 'x-amz-signature="xxxx"' \
    --form 'success_action_status="200"' \
    --form 'file=@"/path/to/file"'
    iv8d
        13
    iv8d  
    OP
       92 天前
    我选了 postman 里的 auth 里的 aws ,生成出来的就是 uthorization: AWS4-HMA 形式的。下载没问题,就上传不行。
    iv8d
        14
    iv8d  
    OP
       92 天前
    @rogerhesong 大佬你这个示例在哪看的,官网有相关的描述吗,policy 是 readwrite 吗。
    iv8d
        15
    iv8d  
    OP
       92 天前
    @rogerhesong 刚用你发的这个示例,将内容都放到 form-data 里的试过也不行提示
    ```
    <?xml version="1.0" encoding="UTF-8"?>
    <Error>
    <Code>MalformedXML</Code>
    <Message>The XML you provided was not well-formed or did not validate against our published schema.</Message>
    <BucketName>ojbk</BucketName>
    <Resource>/ojbk</Resource>
    <RequestId>185082A263EF3990</RequestId>
    <HostId>dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8</HostId>
    </Error>
    iv8d
        16
    iv8d  
    OP
       92 天前
    成功了,默认创建的 user 的 access-key 仅有查看权限,增加了 s3:PutObject 上传权限就可以了
    iv8d
        17
    iv8d  
    OP
       92 天前
    使用 put 单文件方式,不用 form-data ,否则会提示 multiple authentication types
    onesixthree
        18
    onesixthree  
       92 天前
    直接生成预授权链接,然后通过预授权链接直接 put 文件
    iv8d
        19
    iv8d  
    OP
       92 天前 via Android
    @onesixthree 在哪生成,预授权需要签名什么的。我这想不用 sdk 访问试试
    rogerhesong
        20
    rogerhesong  
       92 天前
    @iv8d 我这是 sdk 生成的预签名参数,然后前端组装发起请求,不过我这是比较老版本私有化部署的,不一定适用
    zihuyishi
        21
    zihuyishi  
       92 天前
    简单,你用 aws s3 sdk ,然后配置里配置打印请求的信息,然后他会把 url 和 headers ,body 这些都打印出来,你直接照抄就行。
    iv8d
        22
    iv8d  
    OP
       92 天前 via Android
    @zihuyishi 谢谢大佬我试试这种方法
    luckyc
        23
    luckyc  
       91 天前
    @wchcastle 你要不要看看你在说什么?
    onesixthree
        24
    onesixthree  
       91 天前
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     854 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 21:41 PVG 05:41 LAX 14:41 JFK 17:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86