1

Google Storage JSON APIを使用して、バケット内のすべてのアイテムを含むjsonを取得してアプリケーション内にツリーリストを作成しています。 私の問題は、このJSONの中にいくつかのフォルダ項目がないことです。 これは、フォルダ項目の出力です:GoogleストレージJSON APIが見つからないフォルダのアイテム

{ 
     "kind": "storage#object", 
     "id": "id", 
     "selfLink": "selfLink", 
     "name": "pdf/", 
     "bucket": "bucket-name", 
     "generation": "1461762807657000", 
     "metageneration": "1", 
     "contentType": "application/x-www-form-urlencoded;charset=UTF-8", 
     "timeCreated": "2016-04-27T13:13:27.626Z", 
     "updated": "2016-04-27T13:13:27.626Z", 
     "storageClass": "STANDARD", 
     "timeStorageClassUpdated": "2016-04-27T13:13:27.626Z", 
     "size": "0", 
     "md5Hash": "", 
     "mediaLink": "link", 
     "crc32c": "", 
     "etag": "" 
    } 

これはPDFフォルダが、このフォルダ内のアイテムにもかかわらず、行方不明例えばビデオフォルダはJSONでご利用いただけます。 このページでAPIと同じ結果が得られましたGoogle Storage Object List

+0

リスティングコールから返された 'pageToken'はありますか? – jterrace

答えて

0

Google Cloud Storageには名前空間がフラットなので、「フォルダ」は実際には存在しません。その代わりに、 'prefix'と 'delimiter'オプションを持つListObject APIを使用しています。このオプションを使用すると、リストする「フォルダ」に「接頭辞」を設定し、区切り文字を「/」に設定することで非常に非効率な階層のシミュレーションが可能になります。これにより、そのフォルダ内のすべてのオブジェクトがリスト呼び出しで返され、「フォルダ」がcommon_prefixとして返されます。

これは、実際にGoogleクラウドストレージにフォルダを「作成」できないということです。フォルダはオブジェクトが存在する場合にのみ存在するため、ユーザーがUIに「フォルダ」を作成すると、「フォルダ」を作成するために、名前に「ゼロ」のプレースホルダオブジェクトが作成されます。

名前を付けてファイルをアップロードして、そのフォルダをUIで最初に作成せずにフォルダに配置すると、このプレースホルダオブジェクトは決して作成されません。

関連する問題