Эй, ребята, они очень новичок в облачном хранилище Google.
Я хочу создать папку в ведре, используя php-кодирование. Я обыскал несколько сайтов, и на 1 я увидел, что было написано:
«Создание папки внутри ведра приведет к созданию объекта-заполнителя, названного в честь каталога, не содержит содержимого данных и приложения-приложения mimetype / x-каталог. Объекты-заполнители каталога, созданные в Google Storage Manager, не поддерживаются».
Я не мог понять, что он пытается сказать. Как я могу создать папку, пожалуйста, помогите мне. Я попытался использовать следующий код:
$req = new Google_HttpRequest("http://commondatastorage.googleapis.com/bucket/myfoldertrial"); $req->setRequestHeaders(array( 'x-goog-project-id' => 21212, 'x-goog-acl' => 'public-read', 'Content-Type' => 'application/x-directory' )); $req->setRequestMethod('PUT'); $req->setPostBody('myfoldertrial');
Я использую API из следующей ссылки:
API Google для PHP
Помогите мне создать папку с помощью PHP.
Вероятно, вам действительно не нужно создавать папку.
Google Storage не является древовидной структурой, используемой файловой системой вашей операционной системы, все объекты хранятся в ведрах на верхнем уровне. Однако вы можете дать объекту имя с косой чертой, поэтому он будет выглядеть так, как будто он находится в папке. Users/username/docs/2012/09/21/activity.csv
– это прекрасное имя для объекта и не требуется никаких поддерживающих папок.
Когда у вас есть объекты с такой схемой, вы можете перечислить их так, как если бы вы просматривали содержимое папки с параметрами delimiter
и prefix
в соответствии с этими документами .
Поэтому, если вы только хотели создать myfoldertrial
чтобы вы могли загрузить example.png
, нет необходимости создавать папку, вы можете просто загрузить прямо в myfoldertrial/example.png
.
Иногда, в CMS, вам нужно сначала создать каталог, прежде чем сможете загрузить в него файл, поэтому щелчок мыши может инициировать событие для перехода по пути в качестве базовой папки, а затем выполнить пакетную загрузку.
Говорят, это файловый браузер.
Этот код ниже может помочь.
<?php $privateKeyFile = '{{full/path/to/*.p12}}'; $newDirectory = '{{path/of/new/directory/}}'; // remember to end it with a slash. /** * Authentication */ $client = new Google_Client(); $client->setApplicationName('Create a new folder'); $client->setClientId($clientId); $scopes = array('https://www.googleapis.com/auth/devstorage.full_control'); $client->setScopes($scopes); $service = new Google_Service_Storage($client); if (isset($_SESSION['service_token'])) { $client->setAccessToken($_SESSION['service_token']); } if (!file_exists($privateKeyFile)) { die('missing the location of primary key file, given: ' . $privateKeyFile); } $key = file_get_contents($privateKeyFile); $cred = new Google_Auth_AssertionCredentials( $clientEmailAddress , $scopes , $key ); $client->setAssertionCredentials($cred); if ($client->getAuth()->isAccessTokenExpired()) { $client->getAuth()->refreshTokenWithAssertion($cred); } $_SESSION['service_token'] = $client->getAccessToken(); /** * Creating Folder */ try { /* create empty file that acts as folder */ $postBody = new Google_Service_Storage_StorageObject(); $postBody->setName($newDirectory); $postBody->setSize(0); $created = $service->objects->insert($bucketName, $postBody, array( 'name' => $newDirectory, 'uploadType' => 'media', 'projection' => 'full', 'data' => '', )); } catch (Exception $ex) { echo $ex->getMessage() . "\n<pre>"; print_r($ex->getTraceAsString()); echo '</pre>'; die(); } echo 'EOF';
Вы можете просто создать папку, указав ее в пути к файлу при ее загрузке, т. Е. Ваш URL должен быть https://storage.googleapis.com/ //?GoogleAccessId=id@developer.gserviceaccount.com&Expires=1410875751&Signature=SIGNATURE