七牛命名带目录的存储怎么修改?

//命名规则
if($SAVETYPE == 'date'){
    $key = time().'.'.pathinfo($_FILES[$fieldName]["name"], PATHINFO_EXTENSION);  
}else{
    $key = $_FILES[$fieldName]['name'];
}

$upfile = array(
        'name'=>'file',
        'fileName'=>$key,
        'fileBody'=>file_get_contents($_FILES[$fieldName]['tmp_name'])
    );

$config = array();
$result = $qiniu->upload($config, $upfile);
if(!empty($result['hash'])){
    $url = '';
    if(htmlspecialchars($_GET['action']) == 'uploadimage'){
        if($USEWATER){
            $waterBase = urlsafe_base64_encode($WATERIMAGEURL);
            $url  =  $qiniu->downlink($result['key'])."?watermark/1/image/{$waterBase}/dissolve/{$DISSOLVE}/gravity/{$GRAVITY}/dx/{$DX}/dy/{$DY}";
        }else{
            $url  =  $qiniu->downlink($result['key']);
        }
    }else{
            $url  =  $qiniu->downlink($result['key']);
    }
    /*构建返回数据格式*/
    $FileInfo = array(
                      "state" => "SUCCESS",         
                      "url"   => $url,           
                      "title" => $result['key'],         
                      "original" => $_FILES[$fieldName]['name'],       
                      "type" => $_FILES[$fieldName]['type'],            
                      "size" => $_FILES[$fieldName]['size'],           
                  );
    /* 返回数据 */
    return json_encode($FileInfo);
}

现在上传的网址仅仅是img.123.com/13343234.jpg
如何修改可以实现img.123.com/nian/月日/13343234.jpg

阅读 4.1k
1 个回答

七牛云存储的服务端是一个 key-value 系统,而非树形结构,因此也没有 “目录” 或者 “文件夹” 的概念。

其中,value 是用户上传到七牛云存储的文件,key 是一个用户自定义的字符串,用于在服务端标识这个 value 这个文件。一个 key 对应一个 value,因此,在每个空间(Bucket)中,key 必须是唯一的。

key 中可以包含斜杠 “/”,让你感觉起来像目录结构,比如 “a/b/c/d.txt” 这个 key,在服务端只对应一个文件,但它看起来像 a 目录下的 b 目录下的 c 目录下的文件 d.txt。实际上,服务端是不存在 a、b、c 三个目录的,也没法创建目录。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进