public function stream_open($path, $mode, $options, &$opened_path)
    {
        $name = $this->_getNamePart($path);
        // If we open the file for writing, just return true. Create the object
        // on fflush call
        if (strpbrk($mode, 'wax')) {
            $this->_objectName = $name;
            $this->_objectBuffer = null;
            $this->_objectSize = 0;
            $this->_position = 0;
            $this->_writeBuffer = true;
            $this->_getOssClient($path);

            return true;
        } else {
            // Otherwise, just see if the file exists or not
            try {
                $info = $this->_getOssClient($path)->getObjectMeta(AliyunOSS::getBucket(), $name);
                if ($info) {
                    $this->_objectName = $name;
                    $this->_objectBuffer = null;
                    $this->_objectSize = (int) $info['content-length'];
                    $this->_position = 0;
                    $this->_writeBuffer = false;

                    return true;
                }
            } catch (\OSS\Core\OssException $e) {
                return false;
            }
        }

        return false;
    }