cloudstorage icon indicating copy to clipboard operation
cloudstorage copied to clipboard

Handle Files vs Directories

Open araddon opened this issue 9 years ago • 0 comments

The current Object implementation assumes it is a file, and doesn't have any affordance for directory only types. https://golang.org/pkg/os/#FileMode

Google Storage has a Delimiter for filtering to certain types

https://developers.google.com/apis-explorer/#p/storage/v1/storage.objects.list?bucket=lytics-dataux-tests&delimiter=%252F&maxResults=1000&prefix=tables%252F&_h=8&

Limiting to directories with Delimiter = "/"

{
 "kind": "storage#objects",
 "prefixes": [
  "tables/article/",
  "tables/user/"
 ]
}

Regular objects

https://developers.google.com/apis-explorer/#p/storage/v1/storage.objects.list?bucket=lytics-dataux-tests&maxResults=1000&prefix=tables%252F&_h=7&

{
 "kind": "storage#objects",
 "items": [
  {


   "kind": "storage#object",
   "id": "lytics-dataux-tests/tables/article/article1.csv/1457896488161000",
   "selfLink": "https://www.googleapis.com/storage/v1/b/lytics-dataux-tests/o/tables%2Farticle%2Farticle1.csv",
   "name": "tables/article/article1.csv",
   "bucket": "lytics-dataux-tests",
   "generation": "1457896488161000",
   "metageneration": "1",
   "contentType": "text/csv; charset=utf-8",
   "timeCreated": "2016-03-13T19:14:48.119Z",
   "updated": "2016-03-13T19:14:48.119Z",
   "storageClass": "STANDARD",
   "size": "398",
   "md5Hash": "+RTyIckctKnUmha0OaBBHA==",
   "mediaLink": "https://www.googleapis.com/download/storage/v1/b/lytics-dataux-tests/o/tables%2Farticle%2Farticle1.csv?generation=1457896488161000&alt=media",
   "metadata": {
    "content_type": "text/csv; charset=utf-8"
   },
   "owner": {
    "entity": "user-00b4903a9730f58d42103a7fd40a4d0f92e371ae57112475d3993f88ccf7e8d6",
    "entityId": "00b4903a9730f58d42103a7fd40a4d0f92e371ae57112475d3993f88ccf7e8d6"
   },
   "crc32c": "8oZBFA==",
   "etag": "COidr9KvvssCEAE="
  },
  {


   "kind": "storage#object",
   "id": "lytics-dataux-tests/tables/user/user1.csv/1457896494340000",
   "selfLink": "https://www.googleapis.com/storage/v1/b/lytics-dataux-tests/o/tables%2Fuser%2Fuser1.csv",
   "name": "tables/user/user1.csv",
   "bucket": "lytics-dataux-tests",
   "generation": "1457896494340000",
   "metageneration": "1",
   "contentType": "text/csv; charset=utf-8",
   "timeCreated": "2016-03-13T19:14:54.328Z",
   "updated": "2016-03-13T19:14:54.328Z",
   "storageClass": "STANDARD",
   "size": "299",
   "md5Hash": "p6GxtAFU3xu3q8ty852yxw==",
   "mediaLink": "https://www.googleapis.com/download/storage/v1/b/lytics-dataux-tests/o/tables%2Fuser%2Fuser1.csv?generation=1457896494340000&alt=media",
   "metadata": {
    "content_type": "text/csv; charset=utf-8"
   },
   "owner": {
    "entity": "user-00b4903a9730f58d42103a7fd40a4d0f92e371ae57112475d3993f88ccf7e8d6",
    "entityId": "00b4903a9730f58d42103a7fd40a4d0f92e371ae57112475d3993f88ccf7e8d6"
   },
   "crc32c": "1fpnNw==",
   "etag": "CKCvqNWvvssCEAE="
  }
 ]
}

araddon avatar Mar 13 '16 19:03 araddon