這是一些有趣的事情。我們的系統(tǒng)包括一個供用戶使用的文件管理器。這些文件存儲在 Google Cloud Storage 的存儲桶中。我需要做的是在存儲桶中創(chuàng)建一個“文件夾”。是的,我知道 GCS 是一個平坦的空間,文件夾并不是真正的東西......但我可以轉(zhuǎn)到 Google Cloud Platform 瀏覽器并單擊名為“CREATE FOLDER”的按鈕,它會創(chuàng)建一些看起來只是就像一個文件夾。里面不應(yīng)該有任何內(nèi)容。我正在嘗試使用 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);或者我應(yīng)該創(chuàng)建虛擬“文件”以附加到我正在創(chuàng)建的帶有虛擬值的 URL 中?我想我應(yīng)該補(bǔ)充一點(diǎn),我正在使用一個現(xiàn)有的系統(tǒng),該系統(tǒng)使用舊版本的 GCS API 來執(zhí)行此操作,使用的代碼如下:$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貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個贊
好吧,我現(xiàn)在有答案了。您可以使用存儲桶->上傳功能。您需要指定 NULL 作為數(shù)據(jù)值,并使用選項(xiàng)指定完整路徑。確保文件夾名稱以斜杠(“/”)結(jié)尾,否則您將得到一個空文件對象。
$folder_name = "level1/level2/folder/";
$options = [ 'name' => $folder_name ];
$upload_result = $bucket->upload( NULL, $options );
注意:如果 level1 和 level2 不存在,它們也將被創(chuàng)建為文件夾,從而為您提供隱式層次結(jié)構(gòu)。
- 1 回答
- 0 關(guān)注
- 199 瀏覽
添加回答
舉報
0/150
提交
取消