如何解决在Google云端存储中创建“文件夹”对象
这很有趣。我们的系统包括一个用于用户的文件管理器。文件存储在Google Cloud Storage的存储桶中。我需要做的是在存储桶中创建一个“文件夹”。是的,我知道GCS是一个平坦的空间,并且文件夹并不是真正的东西...但是我可以转到Google Cloud Platform浏览器,然后单击一个名为“ CREATE FOLDER”的按钮,它会创建看起来只是像一个文件夹。不应包含任何内容。我正在尝试使用cURL编写一些存储对象,以便它被“保存”:
$bucket = $google_client( $bucket_name );
$folder = $bucket->object( $folder_name );
$url = $folder->beginSignedUploadSession();
// now we have to make an HTTP "PUT"
//open connection
$ch = curl_init();
//set the url,number of POST vars,POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_PUT,1);
curl_setopt($ch,CURLOPT_INFILE,""); <--- this is wrong
curl_setopt($ch,CURLOPT_INFILESIZE,0);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
还是我应该只创建一个虚拟“文件”以附加到我要在其中创建一个虚拟值的URL上?
我想我应该补充一点,我正在与一个使用旧版GCS API并使用以下代码的现有系统一起工作:
$postbody = [ 'data' => $data,'uploadType' => "multipart",'mimeType' => 'text/plain'];
$gso = new Google_Service_Storage_StorageObject();
$gso->setName( $foldername );
$resp = $objects->insert( $bucket,$gso,$postbody );
解决方法
好的,我现在有一个答案。您可以使用bucket-> upload功能。您需要指定NULL作为数据值,并使用选项指定完整路径。确保文件夹名称以斜杠(“ /”)结尾,否则您将获得一个空文件对象。
$folder_name = "level1/level2/folder/";
$options = [ 'name' => $folder_name ];
$upload_result = $bucket->upload( NULL,$options );
注意:如果level1和level2不存在,它们也将创建为文件夹,为您提供隐式层次结构。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。