阿里云OSS上传多个文件的时候,是一个一个文件上传到OSS还是整个文件夹上传?


阿里云OSS提供了有两种上传文件的方式。


 //通过multipart上传文件
function upload_by_multi_part($obj){
    $bucket = 'phpsdk1349849394';
    $object = 'Mining.the.Social.Web-'.time().'.pdf';  //英文
    $filepath = "D:\\Book\\Mining.the.Social.Web.pdf";  //英文

    $options = array(
        ALIOSS::OSS_FILE_UPLOAD => $filepath,
        'partSize' => 5242880,
    );

    $response = $obj->create_mpu_object($bucket, $object,$options);
    _format($response);
}

//通过multipart上传整个目录
function upload_by_dir($obj){
    $bucket = 'phpsdk1349849394';
    $dir = "D:\\alidata\\www\\logs\\aliyun.com\\oss\\";
    $recursive = false;

    $response = $obj->create_mtu_object_by_dir($bucket,$dir,$recursive);
    var_dump($response);    
}

有两种方案:
1.一种是上传一个单个文件,当服务器收到N个文件,通过第一个函数分N次上传。
2.第二种是我把多个文件从临时目录转移到一个临时文件下,通过第二个函数,一次性上传!但是觉得这样很麻烦,既要创建一个新的文件夹,保存上传的文件,上传结束以后还要做删除。
这两种那种好?如果第二种好,能直接在上传的时候就直接给N个临时文件一个独有的临时目录么?

oss php 阿里云

火村真知子 10 years, 6 months ago

还没考虑上传失败的处理。
第一种方案可以上传一个标记一个,第二种方案上传失败了是全部重来还是其他?

另:没看到第二种方案的优势在哪里。如果不是打包上传,第二种方案跟第一种有何区别?

综上,第一种方案比较稳;第二种方案要考虑的太多,也没有带来多少便利,得不偿失。

纯野生的大咕咕 answered 10 years, 6 months ago

Your Answer