当我使用$container->uploadObjects($files)
上传文件时,我可以在名称中包含目录路径以创建新文件夹。如果我使用Cyberduck,我可以看到新文件夹。
但是如果我尝试用$container->objectList($options)
获得一个对象列表,它不会像[content_type] => application/directory
那样列出目录。但我用赛博达克的时候就会。
所以我的问题是,我如何使用php-opencloud创建一个文件夹?
这与php-opencloud无关,但这是CloudFiles的限制。与AWS S3和其他分布式对象存储非常相似,您不能在桶中放置目录。有些软件,比如Cyberduck,知道这一点,而是用层次结构重命名文件,并将这些层次结构显示为目录,即使它们都在容器的同一层。
晚了6年,但我刚刚不得不用PHP Opencloud自己做这件事,并认为我应该发布我的方法,因为您实际上可以创建不包含文件的文件夹。你只需要在上传时设置合适的内容类型:
$container = $objectStoreService->getContainer('container-name');
$container->uploadObject('folder-path-and-name-to-create', '', array('Content-Type' => 'application/directory'));