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