阿里云OSS上传多个文件的时候,是一个一个文件上传到OSS还是整个文件夹上传?
程序员文章站
2024-01-23 22:38:22
...
阿里云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提供了有两种上传文件的方式。
//通过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个临时文件一个独有的临时目录么?
还没考虑上传失败的处理。
第一种方案可以上传一个标记一个,第二种方案上传失败了是全部重来还是其他?
另:没看到第二种方案的优势在哪里。如果不是打包上传,第二种方案跟第一种有何区别?
综上,第一种方案比较稳;第二种方案要考虑的太多,也没有带来多少便利,得不偿失。