为了账号安全,请及时绑定邮箱和手机立即绑定

在 Google Cloud Storage 中创建“文件夹”对象

在 Google Cloud Storage 中创建“文件夹”对象

PHP
慕娘9325324 2023-11-03 17:12:32
这是一些有趣的事情。我们的系统包括一个供用户使用的文件管理器。这些文件存储在 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 datacurl_setopt($ch,CURLOPT_URL, $url);curl_setopt($ch,CURLOPT_PUT, 1);curl_setopt($ch,CURLOPT_INFILE, "");   <--- this is wrongcurl_setopt($ch,CURLOPT_INFILESIZE, 0);//execute post$result = curl_exec($ch);//close connectioncurl_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 );
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

好吧,我现在有答案了。您可以使用存储桶->上传功能。您需要指定 NULL 作为数据值,并使用选项指定完整路径。确保文件夹名称以斜杠(“/”)结尾,否则您将得到一个空文件对象。


$folder_name = "level1/level2/folder/";

$options = [ 'name' => $folder_name ];

$upload_result = $bucket->upload( NULL, $options );

注意:如果 level1 和 level2 不存在,它们也将被创建为文件夹,从而为您提供隐式层次结构。


查看完整回答
反对 回复 2023-11-03
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信