2016-04-09 21 views
1

ご質問は申し訳ありませんが、これは問題ではありません。 Googleストレージバケットにファイルを一般公開するためのラーベルスクリプトがあり、正常に動作しています。問題は、アップロードしたオブジェクトがバケット内にあり、バケット内のディレクトリ内に配置する必要があることです。例えばバケット - は/ dev-バケツ/、正しいディレクトリ - /以下は/ dev-バケット/メディアは、私のスクリプトPHP:Googleストレージバケット内のフォルダに公開ファイルをアップロードする

  $client = new \Google_Client(); 
      $credential = new \Google_Auth_AssertionCredentials(
      '[email protected]', 
      ['https://www.googleapis.com/auth/devstorage.full_control'], 
      file_get_contents(storage_path().'xxxxx.p12') 
     ); 
     $client->setAssertionCredentials($credential); 

     // this access control is for project owners 
     $ownerAccess = new \Google_Service_Storage_ObjectAccessControl(); 
     $ownerAccess->setEntity('project-owners-' . 'xxxxxxxxxxx'); 
     $ownerAccess->setRole('OWNER'); 

     // this access control is for public access 
     $readerAccess = new \Google_Service_Storage_ObjectAccessControl(); 
     $readerAccess->setEntity('allUsers'); 
     $readerAccess->setRole('READER'); 

     $storage = new \Google_Service_Storage($client); 
     $obj = new \Google_Service_Storage_StorageObject(); 
     $obj->setName($stageFileName); 
     $obj->setAcl([$ownerAccess, $readerAccess]); 

     $storage->objects->insert(
      Config::get('constants.bucket'), 
      $obj, 
      [ 
       'name'   => $stageFileName, 
       'data'   => file_get_contents($stageFile), 
       'uploadType' => 'media', 
      ] 
     ); 

は、バケット内のディレクトリ内のオブジェクトを置く方法についてのオプションがありますか?

答えて

1

アップロードするオブジェクトのファイル名をバケット内のディレクトリと共にアップロードすることで、ディレクトリにファイルをアップロードすることができます。あなたは、ファイル名DEVと呼ばれるあなたのバケット内のディレクトリを持っている場合たとえば、Googleのバケット内の特定のフォルダにファイルをアップロードするには「DEV/{fileToBeUploaded} .txtの」

+0

ありがとうございます。私はどこでもこれを探しています。 – Lomse

0

で始まる必要があり、私はコードの下に書いている:

BlobId blobId = BlobId.of(bucketName, vendorName+"/"+fileName); 
Blob blob = storage.get(blobId); 

PS:

そしてそのフォルダからダウンロードするための

Blob blob= 
storage.create(BlobInfo.newBuilder(bucketName,"folder_name/"+f.getName()).setAcl(acls).build(),f.getInputStream()); 
これは、Javaで、他の言語で同様のものを行うことができます。

関連する問題