万恶之源亚马逊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
pinews
V2EX    程序员

万恶之源亚马逊

  •  
  •   pinws 2019-12-13 15:07:22 +08:00 2510 次点击
    这是一个创建于 2209 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有气无力了,看我之前如何吐槽 UCloud 的,应该说都是亚马逊开的坏头吧,但是好歹 UCloud 没封住正确的路呀。

    https://v2ex.com/t/622536
    5 条回复    2019-12-17 11:51:38 +08:00
    eason1874
        1
    eason1874  
       2019-12-14 11:44:51 +08:00
    你这 18 天前的帖子第一个回复居然是我,但你无视了我的评论。

    别万恶了,你在原帖里说的东西基本上都是你自己脑补出来的。

    原帖回复其他人说在发送请求方面 PUT 跟 POST 没区别,是对的。rfc2616 明确指出 PUT 和 POST 的本质区别是对 Request-URI 的含义不同,PUT 假设用户知道 Request-URI 代表什么,要求服务器必须把资源存储在 Request-URI 位置,如果没有就创建并返回 201,如果有就更新并返回 200 或 204,如果要应用在跟 Request-URI 不同的位置上必须返回 301 由用户决定要不要改变。POST 没有这种要求,服务器可以自己决定处理 Request-URI 这个位置的资源还是其他资源。

    你说的什么 POST 适合小文件传输,PUT 适合大文件传输,没有这回事。什么 cURL 的 POST 和 PUT 对文件要求不一样,也没这回事。

    POST 和 PUT 都能用 application/x-www-form-urlencoded (这是你说的用&分割)和 multipart/form-data (这是你说的一个内容)两种数据格式,前者适合简单的文本数据,后者适合大量数据和二进制数据(比如文件)。理论上所有 Content-type 都用,只要服务端支持。

    无论是什么 Content-type 的内容都可以读到内存里再提交,或者指定文件流提交,这纯粹是客户端实现,你爱怎么实现怎么实现,cURL 两种方式都支持,并不会区别对待。
    pinews
        2
    pinews  
    OP
       2019-12-14 12:22:49 +08:00
    我无视你,是不想靠臆测和歪曲观点的人无聊抬杠。

    客户端和服务器端交互,你不用 http 也可以,如果这样是不是什么说什么都没意义?现在不就是服务器端和客户端都围绕这客户端代理 curl 转?

    你说这说那,有什么根据吗? curl 对 put 和 post 的要求不同,这是事实,因为你根据自己的观点然后用优越感随便臆测,
    rfc2616 的确所了 put 的用途,但是亚马逊表面遵从 put 的用法,实际上却是背弃 put 的用法,本来就是投机取巧的办法,结果到了你这里,显示承认 put 和 post 的区别,转眼就是毫无区别。

    因为 put 和 post,所以客户端合理的安排,这是自然而然的事情,但你无视客户端的要求,自己代入客户端说却说怎么用都没问题,

    只所以亚马逊投机取巧没出现问题,是因为亚马逊在服务端也相应做了投机取巧才没有产生问题,而不是怎样都可以,也不纯粹是客户端实现。

    因为上次发帖有很多不严谨的地方,我在此在此重申,put 和 post 在不同的应用场景使用方法不同,但是也有明确的限制。在传统表单不支持 put 操作。而 post 操作应该将键和值作为内容,让服务器使用,而 put 操作键已经在 url 中体现,内容只要值即可。所以在客户端和服务端改变默认规则是不专业的表现。

    请你在拿出些证据再来说,你对 curl 在 put 和 post 的论述上,抱歉,我只能认定你在信口开河。
    eason1874
        3
    eason1874  
       2019-12-15 02:34:20 +08:00
    @pinews #2 你是婴儿吗,非要我把饭喂到你嘴边你才会吃吗,我已经把你所涉及的知识点分别是什么都说清楚了,你就不会自己动手查一下文档写个测试吗?

    另外我再补充一点,你原帖里说 ucloud 对象存储 PHP SDK 单文件上传,说“api 说了 HTTP 方法是 put,但 phpsdk 用的 postfields,这不是 post 吗?”,这也是你脑补出来的。

    官方 SDK 写的就是 PUT,我当时测试过这个 SDK,代码也没有错,实际发出请求也是 PUT。你自己看源码: https://github.com/ufilesdk-dev/ufile-phpsdk/blob/master/v1/ucloud/proxy.php#L30
    eason1874
        4
    eason1874  
       2019-12-15 02:36:40 +08:00
    我看你就是看有个 CURLOPT_POSTFIELDS 就以为是 POST,实际上 PUT 也是用这个名,因为对客户端发送请求来说 PUT 跟 POST 除了名字其他都一样。
    pinews
        5
    pinews  
    OP
       2019-12-17 11:51:38 +08:00
    post 方法与 put ( upload )方法的区别
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5273 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:09 PVG 16:09 LAX 00:09 JFK 03:09
    Do have faith in what you're doing.
    ubao msn 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