开发者社区> 问答> 正文

“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢

阿里云 OSS 上传过程是这样的:


用户提交 -> 服务器接收 -> 接收完毕后向阿里云OSS发起请求 -> OSS正确响应请求 -> 接收文件


代码是这样的:
<?php
// 前面有一大段PHP上传的代码,相当费事,这里省略了
// 下面是服务器和OSS建立请求的过程
$content  = file_get_contents($_FILES["file"]["tmp_name"]);
$upload_file_options = array (
        'content' => $content,
        'length' => strlen($content),
        'headers' => array(
                'Cache-control' => 'max-age=864000'
        )
);

$obj = new ALIOSS($key, $secret);
$response = $obj->upload_file_by_content($bucket, $object, $upload_file_options);



再来看看七牛的上传过程就简单多了:
服务器先获取token -> 用户通过token提交 -> 七牛接收请求文件



先来一段七牛获取token的方法
<?php
Qiniu_SetKeys($accessKey, $secretKey);
$upToken = (new Qiniu_RS_PutPolicy($bucket))->Token(null);

然后我们只要像这样提交,就完事了

<from action="http://up.qiniu.com/" method="post" enctype="multipart/form-data">
    <!-- 其他字段也可以类似token一样通过隐藏域提交上来 -->
    <input type="hide" name="token" value="$upToken" />
    <input type="file" name="file" value="" />
</from>

其他不说,就单说上传,七牛比阿里云有下面几个优点:
  1. 简单,方便,比起阿里云 OSS的代码来说,七牛更接地气
  2. 减少服务请求,我们使用第三方存储有一个很重要的目的就是减少服务器本身的压力
    向 阿里云 OSS 提交文件文件过程中,服务器既要接收、处理用户提交上来的文件,还要向阿里云再次发起请求,进行二次提交
    而 七牛存储 就简单多了,通过token授权,提交文件这个事情,七牛就帮你解决了





展开
收起
levi 2014-03-24 00:32:19 25627 0
12 条回答
写回答
取消 提交回答
  • Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    先在服务器获取签名 然后在post就可以
    2016-05-25 11:15:12
    赞同 展开评论 打赏
  • post应该可以吧
    2015-08-22 12:40:01
    赞同 展开评论 打赏
  • Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    请参考 http://bbs.aliyun.com/read/227466.html?spm=5176.775990438.2.5.73FJT6
    2015-08-20 11:45:06
    赞同 展开评论 打赏
  • 回4楼cloudservice的帖子
    你们回复能公开么?
    2015-08-19 23:02:57
    赞同 展开评论 打赏
  • Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    七牛更接地气
    2015-03-09 20:55:17
    赞同 展开评论 打赏
  • Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    支持楼主,这想法不错~
    2015-03-09 12:03:17
    赞同 展开评论 打赏
  • 2lv
    Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    有没有大侠做出来的,希望分享OSS 提供的预签名URL的功能上传文件的示例
    2015-03-06 13:53:27
    赞同 展开评论 打赏
  • Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    我也有相应需求 给我的答复是自己去利用API实现
    我要的是解决方案 不是半成品 阿里云东西多 但是细节做的很不好
    2014-03-28 20:30:12
    赞同 展开评论 打赏
  • OSS 提供的预签名URL的功能和七牛的token授权是一样一样的~~~
    只是叫法不同而已
    2014-03-25 12:46:00
    赞同 展开评论 打赏
  • 回6楼cloudservice的帖子
    你们回复可能公开下吗?这个问题大家都在问,每个人都发工单的话,我们发起来麻烦,你们解释起来也很麻烦
    2014-03-24 20:07:38
    赞同 展开评论 打赏
  • 分享阿里云支持与服务团队最佳实践、经典案例与故障排查。
    lz好,关于您的问题和您电话进行了沟通,同时在工单中已回复,有其他问题随时提交工单咨询,我们会尽力帮助您~
    2014-03-24 14:24:41
    赞同 展开评论 打赏
  • Re“阿里云OSS”能否像“七牛存储”那样直接POST提交文件呢
    这是来自官方的文档对比,就能发现阿里oss有多麻烦

    阿里云 oss
    http://aliyun_portal_storage.oss.aliyuncs.com/oss_api/oss_phphtml/quickstart.html

    七牛存储
    http://developer.qiniu.com/docs/v6/api/overview/up/form-upload.html

    -------------------------

    Re回3楼levi的帖子
    引用第4楼haoxuan2010于2014-03-24 10:58发表的 回3楼levi的帖子 :
    这个我也不知道

    我和你一样啊,也是想用post object功能上传

    具体你提工单问下吧

    我还以为你是阿里云工作人员,已提交工单,希望得到回复
    2014-03-24 01:56:52
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载