├── .gitignore ├── tests ├── responses │ ├── list_buckets_0.json │ ├── download_content │ ├── list_files_empty.json │ ├── get_file_non_existent.json │ ├── get_upload_url.json │ ├── delete_bucket_non_existent.json │ ├── create_bucket_exists.json │ ├── bucket_not_empty.json │ ├── download_by_incorrect_path.json │ ├── delete_file.json │ ├── delete_bucket.json │ ├── update_bucket_to_private.json │ ├── update_bucket_to_public.json │ ├── create_bucket_private.json │ ├── create_bucket_public.json │ ├── authorize_account.json │ ├── delete_file_non_existent.json │ ├── download_by_incorrect_id.json │ ├── upload.json │ ├── get_file.json │ ├── list_buckets_3.json │ └── list_files_page2.json ├── TestHelper.php └── ClientTest.php ├── src ├── Exceptions │ ├── B2Exception.php │ ├── BadJsonException.php │ ├── BadValueException.php │ ├── NotFoundException.php │ ├── ValidationException.php │ ├── BucketNotEmptyException.php │ ├── FileNotPresentException.php │ └── BucketAlreadyExistsException.php ├── Bucket.php ├── Http │ └── Client.php ├── ErrorHandler.php ├── File.php └── Client.php ├── .travis.yml ├── phpunit.xml ├── composer.json ├── LICENSE.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | composer.lock 3 | -------------------------------------------------------------------------------- /tests/responses/list_buckets_0.json: -------------------------------------------------------------------------------- 1 | { 2 | "buckets": [] 3 | } -------------------------------------------------------------------------------- /tests/responses/download_content: -------------------------------------------------------------------------------- 1 | The quick brown fox jumps over the lazy dog -------------------------------------------------------------------------------- /tests/responses/list_files_empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "nextFileName": null 4 | } 5 | -------------------------------------------------------------------------------- /src/Exceptions/B2Exception.php: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | ./tests/ 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /tests/responses/list_buckets_3.json: -------------------------------------------------------------------------------- 1 | { 2 | "buckets": [ 3 | { 4 | "bucketId": "4a48fe8875c6214145260818", 5 | "accountId": "30f20426f0b1", 6 | "bucketName" : "Kitten Videos", 7 | "bucketType": "allPrivate" 8 | }, 9 | { 10 | "bucketId" : "5b232e8875c6214145260818", 11 | "accountId": "30f20426f0b1", 12 | "bucketName": "Puppy Videos", 13 | "bucketType": "allPublic" 14 | }, 15 | { 16 | "bucketId": "87ba238875c6214145260818", 17 | "accountId": "30f20426f0b1", 18 | "bucketName": "Vacation Pictures", 19 | "bucketType" : "allPrivate" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /src/Bucket.php: -------------------------------------------------------------------------------- 1 | id = $id; 24 | $this->name = $name; 25 | $this->type = $type; 26 | } 27 | 28 | public function getId() 29 | { 30 | return $this->id; 31 | } 32 | 33 | public function getName() 34 | { 35 | return $this->name; 36 | } 37 | 38 | public function getType() 39 | { 40 | return $this->type; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /tests/TestHelper.php: -------------------------------------------------------------------------------- 1 | push($history); 16 | } 17 | 18 | return new HttpClient(['handler' => $handler]); 19 | } 20 | 21 | protected function buildResponseFromStub($statusCode, array $headers = [], $responseFile) 22 | { 23 | $response = file_get_contents(dirname(__FILE__).'/responses/'.$responseFile); 24 | 25 | return new \GuzzleHttp\Psr7\Response($statusCode, $headers, $response); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cwhite92/b2-sdk-php", 3 | "description": "A SDK for working with B2 cloud storage.", 4 | "keywords": ["b2", "storage", "backblaze", "cloud", "filesystem", "backup"], 5 | "homepage": "https://github.com/cwhite92/b2-sdk-php", 6 | "license": "MIT", 7 | "type": "library", 8 | "authors": [ 9 | { 10 | "name": "Chris White", 11 | "email": "chris@cwhite.me", 12 | "homepage": "https://cwhite.me" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=5.5.0", 17 | "guzzlehttp/guzzle": "^6.1" 18 | }, 19 | "require-dev": { 20 | "phpunit/phpunit": "4.8.*" 21 | }, 22 | "autoload": { 23 | "psr-4": { 24 | "ChrisWhite\\B2\\": "src/" 25 | } 26 | }, 27 | "autoload-dev": { 28 | "psr-4": { 29 | "ChrisWhite\\B2\\Tests\\": "tests/" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Http/Client.php: -------------------------------------------------------------------------------- 1 | getStatusCode() !== 200) { 29 | ErrorHandler::handleErrorResponse($response); 30 | } 31 | 32 | if ($asJson) { 33 | return json_decode($response->getBody(), true); 34 | } 35 | 36 | return $response->getBody()->getContents(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Chris White 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/ErrorHandler.php: -------------------------------------------------------------------------------- 1 | BadJsonException::class, 18 | 'bad_value' => BadValueException::class, 19 | 'duplicate_bucket_name' => BucketAlreadyExistsException::class, 20 | 'not_found' => NotFoundException::class, 21 | 'file_not_present' => FileNotPresentException::class, 22 | 'cannot_delete_non_empty_bucket' => BucketNotEmptyException::class 23 | ]; 24 | 25 | public static function handleErrorResponse(Response $response) 26 | { 27 | $responseJson = json_decode($response->getBody(), true); 28 | 29 | if (isset(self::$mappings[$responseJson['code']])) { 30 | $exceptionClass = self::$mappings[$responseJson['code']]; 31 | } else { 32 | // We don't have an exception mapped to this response error, throw generic exception 33 | $exceptionClass = B2Exception::class; 34 | } 35 | 36 | throw new $exceptionClass('Received error from B2: '.$responseJson['message']); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/File.php: -------------------------------------------------------------------------------- 1 | id = $id; 33 | $this->name = $name; 34 | $this->hash = $hash; 35 | $this->size = $size; 36 | $this->type = $type; 37 | $this->info = $info; 38 | $this->bucketId = $bucketId; 39 | $this->action = $action; 40 | $this->uploadTimestamp = $uploadTimestamp; 41 | } 42 | 43 | /** 44 | * @return string 45 | */ 46 | public function getId() 47 | { 48 | return $this->id; 49 | } 50 | 51 | /** 52 | * @return string 53 | */ 54 | public function getName() 55 | { 56 | return $this->name; 57 | } 58 | 59 | /** 60 | * @return string 61 | */ 62 | public function getHash() 63 | { 64 | return $this->hash; 65 | } 66 | 67 | /** 68 | * @return int 69 | */ 70 | public function getSize() 71 | { 72 | return $this->size; 73 | } 74 | 75 | /** 76 | * @return string 77 | */ 78 | public function getType() 79 | { 80 | return $this->type; 81 | } 82 | 83 | /** 84 | * @return array 85 | */ 86 | public function getInfo() 87 | { 88 | return $this->info; 89 | } 90 | 91 | /** 92 | * @return string 93 | */ 94 | public function getBucketId() 95 | { 96 | return $this->bucketId; 97 | } 98 | 99 | /** 100 | * @return string 101 | */ 102 | public function getAction() 103 | { 104 | return $this->action; 105 | } 106 | 107 | /** 108 | * @return string 109 | */ 110 | public function getUploadTimestamp() 111 | { 112 | return $this->uploadTimestamp; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Backblaze B2 SDK for PHP 2 | [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md) 3 | [![Latest Version](https://img.shields.io/github/release/cwhite92/b2-sdk-php.svg?style=flat-square)](https://github.com/cwhite92/b2-sdk-php/releases) 4 | [![SensioLabs Rating](https://img.shields.io/sensiolabs/i/d5e44d75-84d2-40c7-b0d4-7f628429e139.svg?style=flat-square)](https://insight.sensiolabs.com/projects/d5e44d75-84d2-40c7-b0d4-7f628429e139) 5 | [![Build Status](https://img.shields.io/travis/cwhite92/b2-sdk-php.svg?style=flat-square)](https://travis-ci.org/cwhite92/b2-sdk-php) 6 | 7 | `b2-sdk-php` is a client library for working with Backblaze's B2 storage service. It aims to make using the service as 8 | easy as possible by exposing a clear API and taking influence from other SDKs that you may be familiar with. 9 | 10 | ## Example 11 | 12 | This is just a short example, full examples to come on the wiki. 13 | 14 | ```php 15 | use ChrisWhite\B2\Client; 16 | use ChrisWhite\B2\Bucket; 17 | 18 | $client = new Client('accountId', 'applicationKey'); 19 | 20 | // Returns a Bucket object. 21 | $bucket = $client->createBucket([ 22 | 'BucketName' => 'my-special-bucket', 23 | 'BucketType' => Bucket::TYPE_PRIVATE // or TYPE_PUBLIC 24 | ]); 25 | 26 | // Change the bucket to private. Also returns a Bucket object. 27 | $updatedBucket = $client->updateBucket([ 28 | 'BucketId' => $bucket->getId(), 29 | 'BucketType' => Bucket::TYPE_PUBLIC 30 | ]); 31 | 32 | // Retrieve an array of Bucket objects on your account. 33 | $buckets = $client->listBuckets(); 34 | 35 | // Delete a bucket. 36 | $client->deleteBucket([ 37 | 'BucketId' => '4c2b957661da9c825f465e1b' 38 | ]); 39 | 40 | // Upload a file to a bucket. Returns a File object. 41 | $file = $client->upload([ 42 | 'BucketName' => 'my-special-bucket', 43 | 'FileName' => 'path/to/upload/to', 44 | 'Body' => 'I am the file content' 45 | 46 | // The file content can also be provided via a resource. 47 | // 'Body' => fopen('/path/to/input', 'r') 48 | ]); 49 | 50 | // Download a file from a bucket. Returns the file content. 51 | $fileContent = $client->download([ 52 | 'FileId' => $file->getId() 53 | 54 | // Can also identify the file via bucket and path: 55 | // 'BucketName' => 'my-special-bucket', 56 | // 'FileName' => 'path/to/file' 57 | 58 | // Can also save directly to a location on disk. This will cause download() to not return file content. 59 | // 'SaveAs' => '/path/to/save/location' 60 | ]); 61 | 62 | // Delete a file from a bucket. Returns true or false. 63 | $fileDelete = $client->deleteFile([ 64 | 'FileId' => $file->getId() 65 | 66 | // Can also identify the file via bucket and path: 67 | // 'BucketName' => 'my-special-bucket', 68 | // 'FileName' => 'path/to/file' 69 | ]); 70 | 71 | // Retrieve an array of file objects from a bucket. 72 | $fileList = $client->listFiles([ 73 | 'BucketId' => '4d2dbbe08e1e983c5e6f0d12' 74 | ]); 75 | ``` 76 | 77 | ## Installation 78 | 79 | Installation is via Composer: 80 | 81 | ```bash 82 | $ composer require cwhite92/b2-sdk-php 83 | ``` 84 | 85 | ## Tests 86 | 87 | Tests are run with PHPUnit. After installing PHPUnit via Composer: 88 | 89 | ```bash 90 | $ vendor/bin/phpunit 91 | ``` 92 | 93 | ## Contributors 94 | 95 | Feel free to contribute in any way you can whether that be reporting issues, making suggestions or sending PRs. :) 96 | 97 | ## License 98 | 99 | MIT. 100 | -------------------------------------------------------------------------------- /src/Client.php: -------------------------------------------------------------------------------- 1 | accountId = $accountId; 30 | $this->applicationKey = $applicationKey; 31 | 32 | if (isset($options['client'])) { 33 | $this->client = $options['client']; 34 | } else { 35 | $this->client = new HttpClient(['exceptions' => false]); 36 | } 37 | 38 | $this->authorizeAccount(); 39 | } 40 | 41 | /** 42 | * Create a bucket with the given name and type. 43 | * 44 | * @param array $options 45 | * @return Bucket 46 | * @throws ValidationException 47 | */ 48 | public function createBucket(array $options) 49 | { 50 | if (!in_array($options['BucketType'], [Bucket::TYPE_PUBLIC, Bucket::TYPE_PRIVATE])) { 51 | throw new ValidationException( 52 | sprintf('Bucket type must be %s or %s', Bucket::TYPE_PRIVATE, Bucket::TYPE_PUBLIC) 53 | ); 54 | } 55 | 56 | $response = $this->client->request('POST', $this->apiUrl.'/b2_create_bucket', [ 57 | 'headers' => [ 58 | 'Authorization' => $this->authToken, 59 | ], 60 | 'json' => [ 61 | 'accountId' => $this->accountId, 62 | 'bucketName' => $options['BucketName'], 63 | 'bucketType' => $options['BucketType'] 64 | ] 65 | ]); 66 | 67 | return new Bucket($response['bucketId'], $response['bucketName'], $response['bucketType']); 68 | } 69 | 70 | /** 71 | * Updates the type attribute of a bucket by the given ID. 72 | * 73 | * @param array $options 74 | * @return Bucket 75 | * @throws ValidationException 76 | */ 77 | public function updateBucket(array $options) 78 | { 79 | if (!in_array($options['BucketType'], [Bucket::TYPE_PUBLIC, Bucket::TYPE_PRIVATE])) { 80 | throw new ValidationException( 81 | sprintf('Bucket type must be %s or %s', Bucket::TYPE_PRIVATE, Bucket::TYPE_PUBLIC) 82 | ); 83 | } 84 | 85 | if (!isset($options['BucketId']) && isset($options['BucketName'])) { 86 | $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']); 87 | } 88 | 89 | $response = $this->client->request('POST', $this->apiUrl.'/b2_update_bucket', [ 90 | 'headers' => [ 91 | 'Authorization' => $this->authToken, 92 | ], 93 | 'json' => [ 94 | 'accountId' => $this->accountId, 95 | 'bucketId' => $options['BucketId'], 96 | 'bucketType' => $options['BucketType'] 97 | ] 98 | ]); 99 | 100 | return new Bucket($response['bucketId'], $response['bucketName'], $response['bucketType']); 101 | } 102 | 103 | /** 104 | * Returns a list of bucket objects representing the buckets on the account. 105 | * 106 | * @return array 107 | */ 108 | public function listBuckets() 109 | { 110 | $buckets = []; 111 | 112 | $response = $this->client->request('POST', $this->apiUrl.'/b2_list_buckets', [ 113 | 'headers' => [ 114 | 'Authorization' => $this->authToken, 115 | ], 116 | 'json' => [ 117 | 'accountId' => $this->accountId 118 | ] 119 | ]); 120 | 121 | foreach ($response['buckets'] as $bucket) { 122 | $buckets[] = new Bucket($bucket['bucketId'], $bucket['bucketName'], $bucket['bucketType']); 123 | } 124 | 125 | return $buckets; 126 | } 127 | 128 | /** 129 | * Deletes the bucket identified by its ID. 130 | * 131 | * @param array $options 132 | * @return bool 133 | */ 134 | public function deleteBucket(array $options) 135 | { 136 | if (!isset($options['BucketId']) && isset($options['BucketName'])) { 137 | $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']); 138 | } 139 | 140 | $this->client->request('POST', $this->apiUrl.'/b2_delete_bucket', [ 141 | 'headers' => [ 142 | 'Authorization' => $this->authToken 143 | ], 144 | 'json' => [ 145 | 'accountId' => $this->accountId, 146 | 'bucketId' => $options['BucketId'] 147 | ] 148 | ]); 149 | 150 | return true; 151 | } 152 | 153 | /** 154 | * Uploads a file to a bucket and returns a File object. 155 | * 156 | * @param array $options 157 | * @return File 158 | */ 159 | public function upload(array $options) 160 | { 161 | // Clean the path if it starts with /. 162 | if (substr($options['FileName'], 0, 1) === '/') { 163 | $options['FileName'] = ltrim($options['FileName'], '/'); 164 | } 165 | 166 | if (!isset($options['BucketId']) && isset($options['BucketName'])) { 167 | $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']); 168 | } 169 | 170 | // Retrieve the URL that we should be uploading to. 171 | $response = $this->client->request('POST', $this->apiUrl.'/b2_get_upload_url', [ 172 | 'headers' => [ 173 | 'Authorization' => $this->authToken 174 | ], 175 | 'json' => [ 176 | 'bucketId' => $options['BucketId'] 177 | ] 178 | ]); 179 | 180 | $uploadEndpoint = $response['uploadUrl']; 181 | $uploadAuthToken = $response['authorizationToken']; 182 | 183 | if (is_resource($options['Body'])) { 184 | // We need to calculate the file's hash incrementally from the stream. 185 | $context = hash_init('sha1'); 186 | hash_update_stream($context, $options['Body']); 187 | $hash = hash_final($context); 188 | 189 | // Similarly, we have to use fstat to get the size of the stream. 190 | $size = fstat($options['Body'])['size']; 191 | 192 | // Rewind the stream before passing it to the HTTP client. 193 | rewind($options['Body']); 194 | } else { 195 | // We've been given a simple string body, it's super simple to calculate the hash and size. 196 | $hash = sha1($options['Body']); 197 | $size = mb_strlen($options['Body']); 198 | } 199 | 200 | if (!isset($options['FileLastModified'])) { 201 | $options['FileLastModified'] = round(microtime(true) * 1000); 202 | } 203 | 204 | if (!isset($options['FileContentType'])) { 205 | $options['FileContentType'] = 'b2/x-auto'; 206 | } 207 | 208 | $response = $this->client->request('POST', $uploadEndpoint, [ 209 | 'headers' => [ 210 | 'Authorization' => $uploadAuthToken, 211 | 'Content-Type' => $options['FileContentType'], 212 | 'Content-Length' => $size, 213 | 'X-Bz-File-Name' => $options['FileName'], 214 | 'X-Bz-Content-Sha1' => $hash, 215 | 'X-Bz-Info-src_last_modified_millis' => $options['FileLastModified'] 216 | ], 217 | 'body' => $options['Body'] 218 | ]); 219 | 220 | return new File( 221 | $response['fileId'], 222 | $response['fileName'], 223 | $response['contentSha1'], 224 | $response['contentLength'], 225 | $response['contentType'], 226 | $response['fileInfo'] 227 | ); 228 | } 229 | 230 | /** 231 | * Download a file from a B2 bucket. 232 | * 233 | * @param array $options 234 | * @return bool|mixed|string 235 | */ 236 | public function download(array $options) 237 | { 238 | $requestUrl = null; 239 | $requestOptions = [ 240 | 'headers' => [ 241 | 'Authorization' => $this->authToken 242 | ], 243 | 'sink' => isset($options['SaveAs']) ? $options['SaveAs'] : null 244 | ]; 245 | 246 | if (isset($options['FileId'])) { 247 | $requestOptions['query'] = ['fileId' => $options['FileId']]; 248 | $requestUrl = $this->downloadUrl.'/b2api/v1/b2_download_file_by_id'; 249 | } else { 250 | if (!isset($options['BucketName']) && isset($options['BucketId'])) { 251 | $options['BucketName'] = $this->getBucketNameFromId($options['BucketId']); 252 | } 253 | 254 | $requestUrl = sprintf('%s/file/%s/%s', $this->downloadUrl, $options['BucketName'], $options['FileName']); 255 | } 256 | 257 | $response = $this->client->request('GET', $requestUrl, $requestOptions, false); 258 | 259 | return isset($options['SaveAs']) ? true : $response; 260 | } 261 | 262 | /** 263 | * Retrieve a collection of File objects representing the files stored inside a bucket. 264 | * 265 | * @param array $options 266 | * @return array 267 | */ 268 | public function listFiles(array $options) 269 | { 270 | // if FileName is set, we only attempt to retrieve information about that single file. 271 | $fileName = !empty($options['FileName']) ? $options['FileName'] : null; 272 | 273 | $nextFileName = null; 274 | $maxFileCount = 1000; 275 | $files = []; 276 | 277 | if (!isset($options['BucketId']) && isset($options['BucketName'])) { 278 | $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']); 279 | } 280 | 281 | if ($fileName) { 282 | $nextFileName = $fileName; 283 | $maxFileCount = 1; 284 | } 285 | 286 | // B2 returns, at most, 1000 files per "page". Loop through the pages and compile an array of File objects. 287 | while (true) { 288 | $response = $this->client->request('POST', $this->apiUrl.'/b2_list_file_names', [ 289 | 'headers' => [ 290 | 'Authorization' => $this->authToken 291 | ], 292 | 'json' => [ 293 | 'bucketId' => $options['BucketId'], 294 | 'startFileName' => $nextFileName, 295 | 'maxFileCount' => $maxFileCount, 296 | ] 297 | ]); 298 | 299 | foreach ($response['files'] as $file) { 300 | // if we have a file name set, only retrieve information if the file name matches 301 | if (!$fileName || ($fileName === $file['fileName'])) { 302 | $files[] = new File($file['fileId'], $file['fileName'], null, $file['size']); 303 | } 304 | } 305 | 306 | if ($fileName || $response['nextFileName'] === null) { 307 | // We've got all the files - break out of loop. 308 | break; 309 | } 310 | 311 | $nextFileName = $response['nextFileName']; 312 | } 313 | 314 | return $files; 315 | } 316 | 317 | /** 318 | * Test whether a file exists in B2 for the given bucket. 319 | * 320 | * @param array $options 321 | * @return boolean 322 | */ 323 | public function fileExists(array $options) 324 | { 325 | $files = $this->listFiles($options); 326 | 327 | return !empty($files); 328 | } 329 | 330 | 331 | /** 332 | * Returns a single File object representing a file stored on B2. 333 | * 334 | * @param array $options 335 | * @throws NotFoundException If no file id was provided and BucketName + FileName does not resolve to a file, a NotFoundException is thrown. 336 | * @return File 337 | */ 338 | public function getFile(array $options) 339 | { 340 | if (!isset($options['FileId']) && isset($options['BucketName']) && isset($options['FileName'])) { 341 | $options['FileId'] = $this->getFileIdFromBucketAndFileName($options['BucketName'], $options['FileName']); 342 | 343 | if (!$options['FileId']) { 344 | throw new NotFoundException(); 345 | } 346 | } 347 | 348 | $response = $this->client->request('POST', $this->apiUrl.'/b2_get_file_info', [ 349 | 'headers' => [ 350 | 'Authorization' => $this->authToken 351 | ], 352 | 'json' => [ 353 | 'fileId' => $options['FileId'] 354 | ] 355 | ]); 356 | 357 | return new File( 358 | $response['fileId'], 359 | $response['fileName'], 360 | $response['contentSha1'], 361 | $response['contentLength'], 362 | $response['contentType'], 363 | $response['fileInfo'], 364 | $response['bucketId'], 365 | $response['action'], 366 | $response['uploadTimestamp'] 367 | ); 368 | } 369 | 370 | /** 371 | * Deletes the file identified by ID from Backblaze B2. 372 | * 373 | * @param array $options 374 | * @return bool 375 | */ 376 | public function deleteFile(array $options) 377 | { 378 | if (!isset($options['FileName'])) { 379 | $file = $this->getFile($options); 380 | 381 | $options['FileName'] = $file->getName(); 382 | } 383 | 384 | if (!isset($options['FileId']) && isset($options['BucketName']) && isset($options['FileName'])) { 385 | $file = $this->getFile($options); 386 | 387 | $options['FileId'] = $file->getId(); 388 | } 389 | 390 | $this->client->request('POST', $this->apiUrl.'/b2_delete_file_version', [ 391 | 'headers' => [ 392 | 'Authorization' => $this->authToken 393 | ], 394 | 'json' => [ 395 | 'fileName' => $options['FileName'], 396 | 'fileId' => $options['FileId'] 397 | ] 398 | ]); 399 | 400 | return true; 401 | } 402 | 403 | /** 404 | * Authorize the B2 account in order to get an auth token and API/download URLs. 405 | * 406 | * @throws \Exception 407 | */ 408 | protected function authorizeAccount() 409 | { 410 | $response = $this->client->request('GET', 'https://api.backblazeb2.com/b2api/v1/b2_authorize_account', [ 411 | 'auth' => [$this->accountId, $this->applicationKey] 412 | ]); 413 | 414 | $this->authToken = $response['authorizationToken']; 415 | $this->apiUrl = $response['apiUrl'].'/b2api/v1'; 416 | $this->downloadUrl = $response['downloadUrl']; 417 | } 418 | 419 | /** 420 | * Maps the provided bucket name to the appropriate bucket ID. 421 | * 422 | * @param $name 423 | * @return null 424 | */ 425 | protected function getBucketIdFromName($name) 426 | { 427 | $buckets = $this->listBuckets(); 428 | 429 | foreach ($buckets as $bucket) { 430 | if ($bucket->getName() === $name) { 431 | return $bucket->getId(); 432 | } 433 | } 434 | 435 | return null; 436 | } 437 | 438 | /** 439 | * Maps the provided bucket ID to the appropriate bucket name. 440 | * 441 | * @param $id 442 | * @return null 443 | */ 444 | protected function getBucketNameFromId($id) 445 | { 446 | $buckets = $this->listBuckets(); 447 | 448 | foreach ($buckets as $bucket) { 449 | if ($bucket->getId() === $id) { 450 | return $bucket->getName(); 451 | } 452 | } 453 | 454 | return null; 455 | } 456 | 457 | protected function getFileIdFromBucketAndFileName($bucketName, $fileName) 458 | { 459 | $files = $this->listFiles([ 460 | 'BucketName' => $bucketName, 461 | 'FileName' => $fileName, 462 | ]); 463 | 464 | foreach ($files as $file) { 465 | if ($file->getName() === $fileName) { 466 | return $file->getId(); 467 | } 468 | } 469 | 470 | return null; 471 | } 472 | } 473 | -------------------------------------------------------------------------------- /tests/ClientTest.php: -------------------------------------------------------------------------------- 1 | buildGuzzleFromResponses([ 24 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 25 | $this->buildResponseFromStub(200, [], 'create_bucket_public.json') 26 | ]); 27 | 28 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 29 | 30 | // Test that we get a public bucket back after creation 31 | $bucket = $client->createBucket([ 32 | 'BucketName' => 'Test bucket', 33 | 'BucketType' => Bucket::TYPE_PUBLIC 34 | ]); 35 | $this->assertInstanceOf(Bucket::class, $bucket); 36 | $this->assertEquals('Test bucket', $bucket->getName()); 37 | $this->assertEquals(Bucket::TYPE_PUBLIC, $bucket->getType()); 38 | } 39 | 40 | public function testCreatePrivateBucket() 41 | { 42 | $guzzle = $this->buildGuzzleFromResponses([ 43 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 44 | $this->buildResponseFromStub(200, [], 'create_bucket_private.json') 45 | ]); 46 | 47 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 48 | 49 | // Test that we get a private bucket back after creation 50 | $bucket = $client->createBucket([ 51 | 'BucketName' => 'Test bucket', 52 | 'BucketType' => Bucket::TYPE_PRIVATE 53 | ]); 54 | $this->assertInstanceOf(Bucket::class, $bucket); 55 | $this->assertEquals('Test bucket', $bucket->getName()); 56 | $this->assertEquals(Bucket::TYPE_PRIVATE, $bucket->getType()); 57 | } 58 | 59 | public function testBucketAlreadyExistsExceptionThrown() 60 | { 61 | $this->setExpectedException(BucketAlreadyExistsException::class); 62 | 63 | $guzzle = $this->buildGuzzleFromResponses([ 64 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 65 | $this->buildResponseFromStub(400, [], 'create_bucket_exists.json') 66 | ]); 67 | 68 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 69 | $client->createBucket([ 70 | 'BucketName' => 'I already exist', 71 | 'BucketType' => Bucket::TYPE_PRIVATE 72 | ]); 73 | } 74 | 75 | public function testInvalidBucketTypeThrowsException() 76 | { 77 | $this->setExpectedException(ValidationException::class); 78 | 79 | $guzzle = $this->buildGuzzleFromResponses([ 80 | $this->buildResponseFromStub(200, [], 'authorize_account.json') 81 | ]); 82 | 83 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 84 | $client->createBucket([ 85 | 'BucketName' => 'Test bucket', 86 | 'BucketType' => 'i am not valid' 87 | ]); 88 | } 89 | 90 | public function testUpdateBucketToPrivate() 91 | { 92 | $guzzle = $this->buildGuzzleFromResponses([ 93 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 94 | $this->buildResponseFromStub(200, [], 'update_bucket_to_private.json') 95 | ]); 96 | 97 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 98 | 99 | $bucket = $client->updateBucket([ 100 | 'BucketId' => 'bucketId', 101 | 'BucketType' => Bucket::TYPE_PRIVATE 102 | ]); 103 | 104 | $this->assertInstanceOf(Bucket::class, $bucket); 105 | $this->assertEquals('bucketId', $bucket->getId()); 106 | $this->assertEquals(Bucket::TYPE_PRIVATE, $bucket->getType()); 107 | } 108 | 109 | public function testUpdateBucketToPublic() 110 | { 111 | $guzzle = $this->buildGuzzleFromResponses([ 112 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 113 | $this->buildResponseFromStub(200, [], 'update_bucket_to_public.json') 114 | ]); 115 | 116 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 117 | 118 | $bucket = $client->updateBucket([ 119 | 'BucketId' => 'bucketId', 120 | 'BucketType' => Bucket::TYPE_PUBLIC 121 | ]); 122 | 123 | $this->assertInstanceOf(Bucket::class, $bucket); 124 | $this->assertEquals('bucketId', $bucket->getId()); 125 | $this->assertEquals(Bucket::TYPE_PUBLIC, $bucket->getType()); 126 | } 127 | 128 | public function testList3Buckets() 129 | { 130 | $guzzle = $this->buildGuzzleFromResponses([ 131 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 132 | $this->buildResponseFromStub(200, [], 'list_buckets_3.json') 133 | ]); 134 | 135 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 136 | 137 | $buckets = $client->listBuckets(); 138 | $this->assertInternalType('array', $buckets); 139 | $this->assertCount(3, $buckets); 140 | $this->assertInstanceOf(Bucket::class, $buckets[0]); 141 | } 142 | 143 | public function testEmptyArrayWithNoBuckets() 144 | { 145 | $guzzle = $this->buildGuzzleFromResponses([ 146 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 147 | $this->buildResponseFromStub(200, [], 'list_buckets_0.json') 148 | ]); 149 | 150 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 151 | 152 | $buckets = $client->listBuckets(); 153 | $this->assertInternalType('array', $buckets); 154 | $this->assertCount(0, $buckets); 155 | } 156 | 157 | public function testDeleteBucket() 158 | { 159 | $guzzle = $this->buildGuzzleFromResponses([ 160 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 161 | $this->buildResponseFromStub(200, [], 'delete_bucket.json') 162 | ]); 163 | 164 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 165 | 166 | $this->assertTrue($client->deleteBucket([ 167 | 'BucketId' => 'bucketId' 168 | ])); 169 | } 170 | 171 | public function testBadJsonThrownDeletingNonExistentBucket() 172 | { 173 | $this->setExpectedException(BadJsonException::class); 174 | 175 | $guzzle = $this->buildGuzzleFromResponses([ 176 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 177 | $this->buildResponseFromStub(400, [], 'delete_bucket_non_existent.json') 178 | ]); 179 | 180 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 181 | 182 | $client->deleteBucket([ 183 | 'BucketId' => 'bucketId' 184 | ]); 185 | } 186 | 187 | public function testBucketNotEmptyThrownDeletingNonEmptyBucket() 188 | { 189 | $this->setExpectedException(BucketNotEmptyException::class); 190 | 191 | $guzzle = $this->buildGuzzleFromResponses([ 192 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 193 | $this->buildResponseFromStub(400, [], 'bucket_not_empty.json') 194 | ]); 195 | 196 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 197 | 198 | $client->deleteBucket([ 199 | 'BucketId' => 'bucketId' 200 | ]); 201 | } 202 | 203 | public function testUploadingResource() 204 | { 205 | $container = []; 206 | $history = Middleware::history($container); 207 | $guzzle = $this->buildGuzzleFromResponses([ 208 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 209 | $this->buildResponseFromStub(200, [], 'get_upload_url.json'), 210 | $this->buildResponseFromStub(200, [], 'upload.json') 211 | ], $history); 212 | 213 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 214 | 215 | // Set up the resource being uploaded. 216 | $content = 'The quick brown box jumps over the lazy dog'; 217 | $resource = fopen('php://memory', 'r+'); 218 | fwrite($resource, $content); 219 | rewind($resource); 220 | 221 | $file = $client->upload([ 222 | 'BucketId' => 'bucketId', 223 | 'FileName' => 'test.txt', 224 | 'Body' => $resource 225 | ]); 226 | 227 | $this->assertInstanceOf(File::class, $file); 228 | 229 | // We'll also check the Guzzle history to make sure the upload request got created correctly. 230 | $uploadRequest = $container[2]['request']; 231 | $this->assertEquals('uploadUrl', $uploadRequest->getRequestTarget()); 232 | $this->assertEquals('authToken', $uploadRequest->getHeader('Authorization')[0]); 233 | $this->assertEquals(strlen($content), $uploadRequest->getHeader('Content-Length')[0]); 234 | $this->assertEquals('test.txt', $uploadRequest->getHeader('X-Bz-File-Name')[0]); 235 | $this->assertEquals(sha1($content), $uploadRequest->getHeader('X-Bz-Content-Sha1')[0]); 236 | $this->assertEquals(round(microtime(true) * 1000), $uploadRequest->getHeader('X-Bz-Info-src_last_modified_millis')[0], '', 100); 237 | $this->assertInstanceOf(Stream::class, $uploadRequest->getBody()); 238 | } 239 | 240 | public function testUploadingString() 241 | { 242 | $container = []; 243 | $history = Middleware::history($container); 244 | $guzzle = $this->buildGuzzleFromResponses([ 245 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 246 | $this->buildResponseFromStub(200, [], 'get_upload_url.json'), 247 | $this->buildResponseFromStub(200, [], 'upload.json') 248 | ], $history); 249 | 250 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 251 | 252 | $content = 'The quick brown box jumps over the lazy dog'; 253 | 254 | $file = $client->upload([ 255 | 'BucketId' => 'bucketId', 256 | 'FileName' => 'test.txt', 257 | 'Body' => $content 258 | ]); 259 | 260 | $this->assertInstanceOf(File::class, $file); 261 | 262 | // We'll also check the Guzzle history to make sure the upload request got created correctly. 263 | $uploadRequest = $container[2]['request']; 264 | $this->assertEquals('uploadUrl', $uploadRequest->getRequestTarget()); 265 | $this->assertEquals('authToken', $uploadRequest->getHeader('Authorization')[0]); 266 | $this->assertEquals(strlen($content), $uploadRequest->getHeader('Content-Length')[0]); 267 | $this->assertEquals('test.txt', $uploadRequest->getHeader('X-Bz-File-Name')[0]); 268 | $this->assertEquals(sha1($content), $uploadRequest->getHeader('X-Bz-Content-Sha1')[0]); 269 | $this->assertEquals(round(microtime(true) * 1000), $uploadRequest->getHeader('X-Bz-Info-src_last_modified_millis')[0], '', 100); 270 | $this->assertInstanceOf(Stream::class, $uploadRequest->getBody()); 271 | } 272 | 273 | public function testUploadingWithCustomContentTypeAndLastModified() 274 | { 275 | $container = []; 276 | $history = Middleware::history($container); 277 | $guzzle = $this->buildGuzzleFromResponses([ 278 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 279 | $this->buildResponseFromStub(200, [], 'get_upload_url.json'), 280 | $this->buildResponseFromStub(200, [], 'upload.json') 281 | ], $history); 282 | 283 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 284 | 285 | // My birthday :) 286 | $lastModified = 701568000000; 287 | $contentType = 'text/plain'; 288 | 289 | $file = $client->upload([ 290 | 'BucketId' => 'bucketId', 291 | 'FileName' => 'test.txt', 292 | 'Body' => 'Test file content', 293 | 'FileContentType' => $contentType, 294 | 'FileLastModified' => $lastModified 295 | ]); 296 | 297 | $this->assertInstanceOf(File::class, $file); 298 | 299 | // We'll also check the Guzzle history to make sure the upload request got created correctly. 300 | $uploadRequest = $container[2]['request']; 301 | $this->assertEquals($lastModified, $uploadRequest->getHeader('X-Bz-Info-src_last_modified_millis')[0]); 302 | $this->assertEquals($contentType, $uploadRequest->getHeader('Content-Type')[0]); 303 | $this->assertInstanceOf(Stream::class, $uploadRequest->getBody()); 304 | } 305 | 306 | public function testDownloadByIdWithoutSavePath() 307 | { 308 | $guzzle = $this->buildGuzzleFromResponses([ 309 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 310 | $this->buildResponseFromStub(200, [], 'download_content') 311 | ]); 312 | 313 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 314 | 315 | $fileContent = $client->download([ 316 | 'FileId' => 'fileId' 317 | ]); 318 | 319 | $this->assertEquals($fileContent, 'The quick brown fox jumps over the lazy dog'); 320 | } 321 | 322 | public function testDownloadByIdWithSavePath() 323 | { 324 | $guzzle = $this->buildGuzzleFromResponses([ 325 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 326 | $this->buildResponseFromStub(200, [], 'download_content') 327 | ]); 328 | 329 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 330 | 331 | $client->download([ 332 | 'FileId' => 'fileId', 333 | 'SaveAs' => __DIR__.'/test.txt' 334 | ]); 335 | 336 | $this->assertFileExists(__DIR__.'/test.txt'); 337 | $this->assertEquals('The quick brown fox jumps over the lazy dog', file_get_contents(__DIR__.'/test.txt')); 338 | 339 | unlink(__DIR__.'/test.txt'); 340 | } 341 | 342 | public function testDownloadingByIncorrectIdThrowsException() 343 | { 344 | $this->setExpectedException(BadValueException::class); 345 | 346 | $guzzle = $this->buildGuzzleFromResponses([ 347 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 348 | $this->buildResponseFromStub(400, [], 'download_by_incorrect_id.json') 349 | ]); 350 | 351 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 352 | 353 | $client->download([ 354 | 'FileId' => 'incorrect' 355 | ]); 356 | } 357 | 358 | public function testDownloadByPathWithoutSavePath() 359 | { 360 | $guzzle = $this->buildGuzzleFromResponses([ 361 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 362 | $this->buildResponseFromStub(200, [], 'download_content') 363 | ]); 364 | 365 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 366 | 367 | $fileContent = $client->download([ 368 | 'BucketName' => 'test-bucket', 369 | 'FileName' => 'test.txt' 370 | ]); 371 | 372 | $this->assertEquals($fileContent, 'The quick brown fox jumps over the lazy dog'); 373 | } 374 | 375 | public function testDownloadByPathWithSavePath() 376 | { 377 | $guzzle = $this->buildGuzzleFromResponses([ 378 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 379 | $this->buildResponseFromStub(200, [], 'download_content') 380 | ]); 381 | 382 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 383 | 384 | $client->download([ 385 | 'BucketName' => 'test-bucket', 386 | 'FileName' => 'test.txt', 387 | 'SaveAs' => __DIR__.'/test.txt' 388 | ]); 389 | 390 | $this->assertFileExists(__DIR__.'/test.txt'); 391 | $this->assertEquals('The quick brown fox jumps over the lazy dog', file_get_contents(__DIR__.'/test.txt')); 392 | 393 | unlink(__DIR__.'/test.txt'); 394 | } 395 | 396 | public function testDownloadingByIncorrectPathThrowsException() 397 | { 398 | $this->setExpectedException(NotFoundException::class); 399 | 400 | $guzzle = $this->buildGuzzleFromResponses([ 401 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 402 | $this->buildResponseFromStub(400, [], 'download_by_incorrect_path.json') 403 | ]); 404 | 405 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 406 | 407 | $client->download([ 408 | 'BucketName' => 'test-bucket', 409 | 'FileName' => 'path/to/incorrect/file.txt' 410 | ]); 411 | } 412 | 413 | public function testListFilesHandlesMultiplePages() 414 | { 415 | $guzzle = $this->buildGuzzleFromResponses([ 416 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 417 | $this->buildResponseFromStub(200, [], 'list_files_page1.json'), 418 | $this->buildResponseFromStub(200, [], 'list_files_page2.json') 419 | ]); 420 | 421 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 422 | 423 | $files = $client->listFiles([ 424 | 'BucketId' => 'bucketId' 425 | ]); 426 | 427 | $this->assertInternalType('array', $files); 428 | $this->assertInstanceOf(File::class, $files[0]); 429 | $this->assertCount(1500, $files); 430 | } 431 | 432 | public function testListFilesReturnsEmptyArrayWithNoFiles() 433 | { 434 | $guzzle = $this->buildGuzzleFromResponses([ 435 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 436 | $this->buildResponseFromStub(200, [], 'list_files_empty.json') 437 | ]); 438 | 439 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 440 | 441 | $files = $client->listFiles([ 442 | 'BucketId' => 'bucketId' 443 | ]); 444 | 445 | $this->assertInternalType('array', $files); 446 | $this->assertCount(0, $files); 447 | } 448 | 449 | public function testGetFile() 450 | { 451 | $guzzle = $this->buildGuzzleFromResponses([ 452 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 453 | $this->buildResponseFromStub(200, [], 'get_file.json') 454 | ]); 455 | 456 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 457 | 458 | $file = $client->getFile([ 459 | 'FileId' => 'fileId' 460 | ]); 461 | 462 | $this->assertInstanceOf(File::class, $file); 463 | } 464 | 465 | public function testGettingNonExistentFileThrowsException() 466 | { 467 | $this->setExpectedException(BadJsonException::class); 468 | 469 | $guzzle = $this->buildGuzzleFromResponses([ 470 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 471 | $this->buildResponseFromStub(400, [], 'get_file_non_existent.json') 472 | ]); 473 | 474 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 475 | 476 | $client->getFile([ 477 | 'FileId' => 'fileId' 478 | ]); 479 | } 480 | 481 | public function testDeleteFile() 482 | { 483 | $guzzle = $this->buildGuzzleFromResponses([ 484 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 485 | $this->buildResponseFromStub(200, [], 'get_file.json'), 486 | $this->buildResponseFromStub(200, [], 'delete_file.json') 487 | ]); 488 | 489 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 490 | 491 | $this->assertTrue($client->deleteFile([ 492 | 'FileId' => 'fileId' 493 | ])); 494 | } 495 | 496 | public function testDeleteFileRetrievesFileNameWhenNotProvided() 497 | { 498 | $guzzle = $this->buildGuzzleFromResponses([ 499 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 500 | $this->buildResponseFromStub(200, [], 'get_file.json'), 501 | $this->buildResponseFromStub(200, [], 'delete_file.json') 502 | ]); 503 | 504 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 505 | 506 | $this->assertTrue($client->deleteFile([ 507 | 'FileId' => 'fileId' 508 | ])); 509 | } 510 | 511 | public function testDeletingNonExistentFileThrowsException() 512 | { 513 | $this->setExpectedException(BadJsonException::class); 514 | 515 | $guzzle = $this->buildGuzzleFromResponses([ 516 | $this->buildResponseFromStub(200, [], 'authorize_account.json'), 517 | $this->buildResponseFromStub(400, [], 'delete_file_non_existent.json') 518 | ]); 519 | 520 | $client = new Client('testId', 'testKey', ['client' => $guzzle]); 521 | 522 | $this->assertTrue($client->deleteFile([ 523 | 'FileId' => 'fileId', 524 | 'FileName' => 'fileName' 525 | ])); 526 | } 527 | } 528 | -------------------------------------------------------------------------------- /tests/responses/list_files_page2.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | { 4 | "action": "upload", 5 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 6 | "fileName": "testfile.bin", 7 | "size": 140827, 8 | "uploadTimestamp": 1454256286000 9 | }, 10 | { 11 | "action": "upload", 12 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 13 | "fileName": "testfile.bin", 14 | "size": 140827, 15 | "uploadTimestamp": 1454256286000 16 | }, 17 | { 18 | "action": "upload", 19 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 20 | "fileName": "testfile.bin", 21 | "size": 140827, 22 | "uploadTimestamp": 1454256286000 23 | }, 24 | { 25 | "action": "upload", 26 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 27 | "fileName": "testfile.bin", 28 | "size": 140827, 29 | "uploadTimestamp": 1454256286000 30 | }, 31 | { 32 | "action": "upload", 33 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 34 | "fileName": "testfile.bin", 35 | "size": 140827, 36 | "uploadTimestamp": 1454256286000 37 | }, 38 | { 39 | "action": "upload", 40 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 41 | "fileName": "testfile.bin", 42 | "size": 140827, 43 | "uploadTimestamp": 1454256286000 44 | }, 45 | { 46 | "action": "upload", 47 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 48 | "fileName": "testfile.bin", 49 | "size": 140827, 50 | "uploadTimestamp": 1454256286000 51 | }, 52 | { 53 | "action": "upload", 54 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 55 | "fileName": "testfile.bin", 56 | "size": 140827, 57 | "uploadTimestamp": 1454256286000 58 | }, 59 | { 60 | "action": "upload", 61 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 62 | "fileName": "testfile.bin", 63 | "size": 140827, 64 | "uploadTimestamp": 1454256286000 65 | }, 66 | { 67 | "action": "upload", 68 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 69 | "fileName": "testfile.bin", 70 | "size": 140827, 71 | "uploadTimestamp": 1454256286000 72 | },{ 73 | "action": "upload", 74 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 75 | "fileName": "testfile.bin", 76 | "size": 140827, 77 | "uploadTimestamp": 1454256286000 78 | }, 79 | { 80 | "action": "upload", 81 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 82 | "fileName": "testfile.bin", 83 | "size": 140827, 84 | "uploadTimestamp": 1454256286000 85 | }, 86 | { 87 | "action": "upload", 88 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 89 | "fileName": "testfile.bin", 90 | "size": 140827, 91 | "uploadTimestamp": 1454256286000 92 | }, 93 | { 94 | "action": "upload", 95 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 96 | "fileName": "testfile.bin", 97 | "size": 140827, 98 | "uploadTimestamp": 1454256286000 99 | }, 100 | { 101 | "action": "upload", 102 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 103 | "fileName": "testfile.bin", 104 | "size": 140827, 105 | "uploadTimestamp": 1454256286000 106 | }, 107 | { 108 | "action": "upload", 109 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 110 | "fileName": "testfile.bin", 111 | "size": 140827, 112 | "uploadTimestamp": 1454256286000 113 | }, 114 | { 115 | "action": "upload", 116 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 117 | "fileName": "testfile.bin", 118 | "size": 140827, 119 | "uploadTimestamp": 1454256286000 120 | }, 121 | { 122 | "action": "upload", 123 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 124 | "fileName": "testfile.bin", 125 | "size": 140827, 126 | "uploadTimestamp": 1454256286000 127 | }, 128 | { 129 | "action": "upload", 130 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 131 | "fileName": "testfile.bin", 132 | "size": 140827, 133 | "uploadTimestamp": 1454256286000 134 | }, 135 | { 136 | "action": "upload", 137 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 138 | "fileName": "testfile.bin", 139 | "size": 140827, 140 | "uploadTimestamp": 1454256286000 141 | },{ 142 | "action": "upload", 143 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 144 | "fileName": "testfile.bin", 145 | "size": 140827, 146 | "uploadTimestamp": 1454256286000 147 | }, 148 | { 149 | "action": "upload", 150 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 151 | "fileName": "testfile.bin", 152 | "size": 140827, 153 | "uploadTimestamp": 1454256286000 154 | }, 155 | { 156 | "action": "upload", 157 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 158 | "fileName": "testfile.bin", 159 | "size": 140827, 160 | "uploadTimestamp": 1454256286000 161 | }, 162 | { 163 | "action": "upload", 164 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 165 | "fileName": "testfile.bin", 166 | "size": 140827, 167 | "uploadTimestamp": 1454256286000 168 | }, 169 | { 170 | "action": "upload", 171 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 172 | "fileName": "testfile.bin", 173 | "size": 140827, 174 | "uploadTimestamp": 1454256286000 175 | }, 176 | { 177 | "action": "upload", 178 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 179 | "fileName": "testfile.bin", 180 | "size": 140827, 181 | "uploadTimestamp": 1454256286000 182 | }, 183 | { 184 | "action": "upload", 185 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 186 | "fileName": "testfile.bin", 187 | "size": 140827, 188 | "uploadTimestamp": 1454256286000 189 | }, 190 | { 191 | "action": "upload", 192 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 193 | "fileName": "testfile.bin", 194 | "size": 140827, 195 | "uploadTimestamp": 1454256286000 196 | }, 197 | { 198 | "action": "upload", 199 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 200 | "fileName": "testfile.bin", 201 | "size": 140827, 202 | "uploadTimestamp": 1454256286000 203 | }, 204 | { 205 | "action": "upload", 206 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 207 | "fileName": "testfile.bin", 208 | "size": 140827, 209 | "uploadTimestamp": 1454256286000 210 | },{ 211 | "action": "upload", 212 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 213 | "fileName": "testfile.bin", 214 | "size": 140827, 215 | "uploadTimestamp": 1454256286000 216 | }, 217 | { 218 | "action": "upload", 219 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 220 | "fileName": "testfile.bin", 221 | "size": 140827, 222 | "uploadTimestamp": 1454256286000 223 | }, 224 | { 225 | "action": "upload", 226 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 227 | "fileName": "testfile.bin", 228 | "size": 140827, 229 | "uploadTimestamp": 1454256286000 230 | }, 231 | { 232 | "action": "upload", 233 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 234 | "fileName": "testfile.bin", 235 | "size": 140827, 236 | "uploadTimestamp": 1454256286000 237 | }, 238 | { 239 | "action": "upload", 240 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 241 | "fileName": "testfile.bin", 242 | "size": 140827, 243 | "uploadTimestamp": 1454256286000 244 | }, 245 | { 246 | "action": "upload", 247 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 248 | "fileName": "testfile.bin", 249 | "size": 140827, 250 | "uploadTimestamp": 1454256286000 251 | }, 252 | { 253 | "action": "upload", 254 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 255 | "fileName": "testfile.bin", 256 | "size": 140827, 257 | "uploadTimestamp": 1454256286000 258 | }, 259 | { 260 | "action": "upload", 261 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 262 | "fileName": "testfile.bin", 263 | "size": 140827, 264 | "uploadTimestamp": 1454256286000 265 | }, 266 | { 267 | "action": "upload", 268 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 269 | "fileName": "testfile.bin", 270 | "size": 140827, 271 | "uploadTimestamp": 1454256286000 272 | }, 273 | { 274 | "action": "upload", 275 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 276 | "fileName": "testfile.bin", 277 | "size": 140827, 278 | "uploadTimestamp": 1454256286000 279 | },{ 280 | "action": "upload", 281 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 282 | "fileName": "testfile.bin", 283 | "size": 140827, 284 | "uploadTimestamp": 1454256286000 285 | }, 286 | { 287 | "action": "upload", 288 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 289 | "fileName": "testfile.bin", 290 | "size": 140827, 291 | "uploadTimestamp": 1454256286000 292 | }, 293 | { 294 | "action": "upload", 295 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 296 | "fileName": "testfile.bin", 297 | "size": 140827, 298 | "uploadTimestamp": 1454256286000 299 | }, 300 | { 301 | "action": "upload", 302 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 303 | "fileName": "testfile.bin", 304 | "size": 140827, 305 | "uploadTimestamp": 1454256286000 306 | }, 307 | { 308 | "action": "upload", 309 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 310 | "fileName": "testfile.bin", 311 | "size": 140827, 312 | "uploadTimestamp": 1454256286000 313 | }, 314 | { 315 | "action": "upload", 316 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 317 | "fileName": "testfile.bin", 318 | "size": 140827, 319 | "uploadTimestamp": 1454256286000 320 | }, 321 | { 322 | "action": "upload", 323 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 324 | "fileName": "testfile.bin", 325 | "size": 140827, 326 | "uploadTimestamp": 1454256286000 327 | }, 328 | { 329 | "action": "upload", 330 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 331 | "fileName": "testfile.bin", 332 | "size": 140827, 333 | "uploadTimestamp": 1454256286000 334 | }, 335 | { 336 | "action": "upload", 337 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 338 | "fileName": "testfile.bin", 339 | "size": 140827, 340 | "uploadTimestamp": 1454256286000 341 | }, 342 | { 343 | "action": "upload", 344 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 345 | "fileName": "testfile.bin", 346 | "size": 140827, 347 | "uploadTimestamp": 1454256286000 348 | },{ 349 | "action": "upload", 350 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 351 | "fileName": "testfile.bin", 352 | "size": 140827, 353 | "uploadTimestamp": 1454256286000 354 | }, 355 | { 356 | "action": "upload", 357 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 358 | "fileName": "testfile.bin", 359 | "size": 140827, 360 | "uploadTimestamp": 1454256286000 361 | }, 362 | { 363 | "action": "upload", 364 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 365 | "fileName": "testfile.bin", 366 | "size": 140827, 367 | "uploadTimestamp": 1454256286000 368 | }, 369 | { 370 | "action": "upload", 371 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 372 | "fileName": "testfile.bin", 373 | "size": 140827, 374 | "uploadTimestamp": 1454256286000 375 | }, 376 | { 377 | "action": "upload", 378 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 379 | "fileName": "testfile.bin", 380 | "size": 140827, 381 | "uploadTimestamp": 1454256286000 382 | }, 383 | { 384 | "action": "upload", 385 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 386 | "fileName": "testfile.bin", 387 | "size": 140827, 388 | "uploadTimestamp": 1454256286000 389 | }, 390 | { 391 | "action": "upload", 392 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 393 | "fileName": "testfile.bin", 394 | "size": 140827, 395 | "uploadTimestamp": 1454256286000 396 | }, 397 | { 398 | "action": "upload", 399 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 400 | "fileName": "testfile.bin", 401 | "size": 140827, 402 | "uploadTimestamp": 1454256286000 403 | }, 404 | { 405 | "action": "upload", 406 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 407 | "fileName": "testfile.bin", 408 | "size": 140827, 409 | "uploadTimestamp": 1454256286000 410 | }, 411 | { 412 | "action": "upload", 413 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 414 | "fileName": "testfile.bin", 415 | "size": 140827, 416 | "uploadTimestamp": 1454256286000 417 | },{ 418 | "action": "upload", 419 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 420 | "fileName": "testfile.bin", 421 | "size": 140827, 422 | "uploadTimestamp": 1454256286000 423 | }, 424 | { 425 | "action": "upload", 426 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 427 | "fileName": "testfile.bin", 428 | "size": 140827, 429 | "uploadTimestamp": 1454256286000 430 | }, 431 | { 432 | "action": "upload", 433 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 434 | "fileName": "testfile.bin", 435 | "size": 140827, 436 | "uploadTimestamp": 1454256286000 437 | }, 438 | { 439 | "action": "upload", 440 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 441 | "fileName": "testfile.bin", 442 | "size": 140827, 443 | "uploadTimestamp": 1454256286000 444 | }, 445 | { 446 | "action": "upload", 447 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 448 | "fileName": "testfile.bin", 449 | "size": 140827, 450 | "uploadTimestamp": 1454256286000 451 | }, 452 | { 453 | "action": "upload", 454 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 455 | "fileName": "testfile.bin", 456 | "size": 140827, 457 | "uploadTimestamp": 1454256286000 458 | }, 459 | { 460 | "action": "upload", 461 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 462 | "fileName": "testfile.bin", 463 | "size": 140827, 464 | "uploadTimestamp": 1454256286000 465 | }, 466 | { 467 | "action": "upload", 468 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 469 | "fileName": "testfile.bin", 470 | "size": 140827, 471 | "uploadTimestamp": 1454256286000 472 | }, 473 | { 474 | "action": "upload", 475 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 476 | "fileName": "testfile.bin", 477 | "size": 140827, 478 | "uploadTimestamp": 1454256286000 479 | }, 480 | { 481 | "action": "upload", 482 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 483 | "fileName": "testfile.bin", 484 | "size": 140827, 485 | "uploadTimestamp": 1454256286000 486 | },{ 487 | "action": "upload", 488 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 489 | "fileName": "testfile.bin", 490 | "size": 140827, 491 | "uploadTimestamp": 1454256286000 492 | }, 493 | { 494 | "action": "upload", 495 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 496 | "fileName": "testfile.bin", 497 | "size": 140827, 498 | "uploadTimestamp": 1454256286000 499 | }, 500 | { 501 | "action": "upload", 502 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 503 | "fileName": "testfile.bin", 504 | "size": 140827, 505 | "uploadTimestamp": 1454256286000 506 | }, 507 | { 508 | "action": "upload", 509 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 510 | "fileName": "testfile.bin", 511 | "size": 140827, 512 | "uploadTimestamp": 1454256286000 513 | }, 514 | { 515 | "action": "upload", 516 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 517 | "fileName": "testfile.bin", 518 | "size": 140827, 519 | "uploadTimestamp": 1454256286000 520 | }, 521 | { 522 | "action": "upload", 523 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 524 | "fileName": "testfile.bin", 525 | "size": 140827, 526 | "uploadTimestamp": 1454256286000 527 | }, 528 | { 529 | "action": "upload", 530 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 531 | "fileName": "testfile.bin", 532 | "size": 140827, 533 | "uploadTimestamp": 1454256286000 534 | }, 535 | { 536 | "action": "upload", 537 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 538 | "fileName": "testfile.bin", 539 | "size": 140827, 540 | "uploadTimestamp": 1454256286000 541 | }, 542 | { 543 | "action": "upload", 544 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 545 | "fileName": "testfile.bin", 546 | "size": 140827, 547 | "uploadTimestamp": 1454256286000 548 | }, 549 | { 550 | "action": "upload", 551 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 552 | "fileName": "testfile.bin", 553 | "size": 140827, 554 | "uploadTimestamp": 1454256286000 555 | },{ 556 | "action": "upload", 557 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 558 | "fileName": "testfile.bin", 559 | "size": 140827, 560 | "uploadTimestamp": 1454256286000 561 | }, 562 | { 563 | "action": "upload", 564 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 565 | "fileName": "testfile.bin", 566 | "size": 140827, 567 | "uploadTimestamp": 1454256286000 568 | }, 569 | { 570 | "action": "upload", 571 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 572 | "fileName": "testfile.bin", 573 | "size": 140827, 574 | "uploadTimestamp": 1454256286000 575 | }, 576 | { 577 | "action": "upload", 578 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 579 | "fileName": "testfile.bin", 580 | "size": 140827, 581 | "uploadTimestamp": 1454256286000 582 | }, 583 | { 584 | "action": "upload", 585 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 586 | "fileName": "testfile.bin", 587 | "size": 140827, 588 | "uploadTimestamp": 1454256286000 589 | }, 590 | { 591 | "action": "upload", 592 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 593 | "fileName": "testfile.bin", 594 | "size": 140827, 595 | "uploadTimestamp": 1454256286000 596 | }, 597 | { 598 | "action": "upload", 599 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 600 | "fileName": "testfile.bin", 601 | "size": 140827, 602 | "uploadTimestamp": 1454256286000 603 | }, 604 | { 605 | "action": "upload", 606 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 607 | "fileName": "testfile.bin", 608 | "size": 140827, 609 | "uploadTimestamp": 1454256286000 610 | }, 611 | { 612 | "action": "upload", 613 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 614 | "fileName": "testfile.bin", 615 | "size": 140827, 616 | "uploadTimestamp": 1454256286000 617 | }, 618 | { 619 | "action": "upload", 620 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 621 | "fileName": "testfile.bin", 622 | "size": 140827, 623 | "uploadTimestamp": 1454256286000 624 | },{ 625 | "action": "upload", 626 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 627 | "fileName": "testfile.bin", 628 | "size": 140827, 629 | "uploadTimestamp": 1454256286000 630 | }, 631 | { 632 | "action": "upload", 633 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 634 | "fileName": "testfile.bin", 635 | "size": 140827, 636 | "uploadTimestamp": 1454256286000 637 | }, 638 | { 639 | "action": "upload", 640 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 641 | "fileName": "testfile.bin", 642 | "size": 140827, 643 | "uploadTimestamp": 1454256286000 644 | }, 645 | { 646 | "action": "upload", 647 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 648 | "fileName": "testfile.bin", 649 | "size": 140827, 650 | "uploadTimestamp": 1454256286000 651 | }, 652 | { 653 | "action": "upload", 654 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 655 | "fileName": "testfile.bin", 656 | "size": 140827, 657 | "uploadTimestamp": 1454256286000 658 | }, 659 | { 660 | "action": "upload", 661 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 662 | "fileName": "testfile.bin", 663 | "size": 140827, 664 | "uploadTimestamp": 1454256286000 665 | }, 666 | { 667 | "action": "upload", 668 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 669 | "fileName": "testfile.bin", 670 | "size": 140827, 671 | "uploadTimestamp": 1454256286000 672 | }, 673 | { 674 | "action": "upload", 675 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 676 | "fileName": "testfile.bin", 677 | "size": 140827, 678 | "uploadTimestamp": 1454256286000 679 | }, 680 | { 681 | "action": "upload", 682 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 683 | "fileName": "testfile.bin", 684 | "size": 140827, 685 | "uploadTimestamp": 1454256286000 686 | }, 687 | { 688 | "action": "upload", 689 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 690 | "fileName": "testfile.bin", 691 | "size": 140827, 692 | "uploadTimestamp": 1454256286000 693 | },{ 694 | "action": "upload", 695 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 696 | "fileName": "testfile.bin", 697 | "size": 140827, 698 | "uploadTimestamp": 1454256286000 699 | }, 700 | { 701 | "action": "upload", 702 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 703 | "fileName": "testfile.bin", 704 | "size": 140827, 705 | "uploadTimestamp": 1454256286000 706 | }, 707 | { 708 | "action": "upload", 709 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 710 | "fileName": "testfile.bin", 711 | "size": 140827, 712 | "uploadTimestamp": 1454256286000 713 | }, 714 | { 715 | "action": "upload", 716 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 717 | "fileName": "testfile.bin", 718 | "size": 140827, 719 | "uploadTimestamp": 1454256286000 720 | }, 721 | { 722 | "action": "upload", 723 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 724 | "fileName": "testfile.bin", 725 | "size": 140827, 726 | "uploadTimestamp": 1454256286000 727 | }, 728 | { 729 | "action": "upload", 730 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 731 | "fileName": "testfile.bin", 732 | "size": 140827, 733 | "uploadTimestamp": 1454256286000 734 | }, 735 | { 736 | "action": "upload", 737 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 738 | "fileName": "testfile.bin", 739 | "size": 140827, 740 | "uploadTimestamp": 1454256286000 741 | }, 742 | { 743 | "action": "upload", 744 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 745 | "fileName": "testfile.bin", 746 | "size": 140827, 747 | "uploadTimestamp": 1454256286000 748 | }, 749 | { 750 | "action": "upload", 751 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 752 | "fileName": "testfile.bin", 753 | "size": 140827, 754 | "uploadTimestamp": 1454256286000 755 | }, 756 | { 757 | "action": "upload", 758 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 759 | "fileName": "testfile.bin", 760 | "size": 140827, 761 | "uploadTimestamp": 1454256286000 762 | },{ 763 | "action": "upload", 764 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 765 | "fileName": "testfile.bin", 766 | "size": 140827, 767 | "uploadTimestamp": 1454256286000 768 | }, 769 | { 770 | "action": "upload", 771 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 772 | "fileName": "testfile.bin", 773 | "size": 140827, 774 | "uploadTimestamp": 1454256286000 775 | }, 776 | { 777 | "action": "upload", 778 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 779 | "fileName": "testfile.bin", 780 | "size": 140827, 781 | "uploadTimestamp": 1454256286000 782 | }, 783 | { 784 | "action": "upload", 785 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 786 | "fileName": "testfile.bin", 787 | "size": 140827, 788 | "uploadTimestamp": 1454256286000 789 | }, 790 | { 791 | "action": "upload", 792 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 793 | "fileName": "testfile.bin", 794 | "size": 140827, 795 | "uploadTimestamp": 1454256286000 796 | }, 797 | { 798 | "action": "upload", 799 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 800 | "fileName": "testfile.bin", 801 | "size": 140827, 802 | "uploadTimestamp": 1454256286000 803 | }, 804 | { 805 | "action": "upload", 806 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 807 | "fileName": "testfile.bin", 808 | "size": 140827, 809 | "uploadTimestamp": 1454256286000 810 | }, 811 | { 812 | "action": "upload", 813 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 814 | "fileName": "testfile.bin", 815 | "size": 140827, 816 | "uploadTimestamp": 1454256286000 817 | }, 818 | { 819 | "action": "upload", 820 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 821 | "fileName": "testfile.bin", 822 | "size": 140827, 823 | "uploadTimestamp": 1454256286000 824 | }, 825 | { 826 | "action": "upload", 827 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 828 | "fileName": "testfile.bin", 829 | "size": 140827, 830 | "uploadTimestamp": 1454256286000 831 | },{ 832 | "action": "upload", 833 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 834 | "fileName": "testfile.bin", 835 | "size": 140827, 836 | "uploadTimestamp": 1454256286000 837 | }, 838 | { 839 | "action": "upload", 840 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 841 | "fileName": "testfile.bin", 842 | "size": 140827, 843 | "uploadTimestamp": 1454256286000 844 | }, 845 | { 846 | "action": "upload", 847 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 848 | "fileName": "testfile.bin", 849 | "size": 140827, 850 | "uploadTimestamp": 1454256286000 851 | }, 852 | { 853 | "action": "upload", 854 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 855 | "fileName": "testfile.bin", 856 | "size": 140827, 857 | "uploadTimestamp": 1454256286000 858 | }, 859 | { 860 | "action": "upload", 861 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 862 | "fileName": "testfile.bin", 863 | "size": 140827, 864 | "uploadTimestamp": 1454256286000 865 | }, 866 | { 867 | "action": "upload", 868 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 869 | "fileName": "testfile.bin", 870 | "size": 140827, 871 | "uploadTimestamp": 1454256286000 872 | }, 873 | { 874 | "action": "upload", 875 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 876 | "fileName": "testfile.bin", 877 | "size": 140827, 878 | "uploadTimestamp": 1454256286000 879 | }, 880 | { 881 | "action": "upload", 882 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 883 | "fileName": "testfile.bin", 884 | "size": 140827, 885 | "uploadTimestamp": 1454256286000 886 | }, 887 | { 888 | "action": "upload", 889 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 890 | "fileName": "testfile.bin", 891 | "size": 140827, 892 | "uploadTimestamp": 1454256286000 893 | }, 894 | { 895 | "action": "upload", 896 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 897 | "fileName": "testfile.bin", 898 | "size": 140827, 899 | "uploadTimestamp": 1454256286000 900 | },{ 901 | "action": "upload", 902 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 903 | "fileName": "testfile.bin", 904 | "size": 140827, 905 | "uploadTimestamp": 1454256286000 906 | }, 907 | { 908 | "action": "upload", 909 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 910 | "fileName": "testfile.bin", 911 | "size": 140827, 912 | "uploadTimestamp": 1454256286000 913 | }, 914 | { 915 | "action": "upload", 916 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 917 | "fileName": "testfile.bin", 918 | "size": 140827, 919 | "uploadTimestamp": 1454256286000 920 | }, 921 | { 922 | "action": "upload", 923 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 924 | "fileName": "testfile.bin", 925 | "size": 140827, 926 | "uploadTimestamp": 1454256286000 927 | }, 928 | { 929 | "action": "upload", 930 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 931 | "fileName": "testfile.bin", 932 | "size": 140827, 933 | "uploadTimestamp": 1454256286000 934 | }, 935 | { 936 | "action": "upload", 937 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 938 | "fileName": "testfile.bin", 939 | "size": 140827, 940 | "uploadTimestamp": 1454256286000 941 | }, 942 | { 943 | "action": "upload", 944 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 945 | "fileName": "testfile.bin", 946 | "size": 140827, 947 | "uploadTimestamp": 1454256286000 948 | }, 949 | { 950 | "action": "upload", 951 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 952 | "fileName": "testfile.bin", 953 | "size": 140827, 954 | "uploadTimestamp": 1454256286000 955 | }, 956 | { 957 | "action": "upload", 958 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 959 | "fileName": "testfile.bin", 960 | "size": 140827, 961 | "uploadTimestamp": 1454256286000 962 | }, 963 | { 964 | "action": "upload", 965 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 966 | "fileName": "testfile.bin", 967 | "size": 140827, 968 | "uploadTimestamp": 1454256286000 969 | },{ 970 | "action": "upload", 971 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 972 | "fileName": "testfile.bin", 973 | "size": 140827, 974 | "uploadTimestamp": 1454256286000 975 | }, 976 | { 977 | "action": "upload", 978 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 979 | "fileName": "testfile.bin", 980 | "size": 140827, 981 | "uploadTimestamp": 1454256286000 982 | }, 983 | { 984 | "action": "upload", 985 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 986 | "fileName": "testfile.bin", 987 | "size": 140827, 988 | "uploadTimestamp": 1454256286000 989 | }, 990 | { 991 | "action": "upload", 992 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 993 | "fileName": "testfile.bin", 994 | "size": 140827, 995 | "uploadTimestamp": 1454256286000 996 | }, 997 | { 998 | "action": "upload", 999 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1000 | "fileName": "testfile.bin", 1001 | "size": 140827, 1002 | "uploadTimestamp": 1454256286000 1003 | }, 1004 | { 1005 | "action": "upload", 1006 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1007 | "fileName": "testfile.bin", 1008 | "size": 140827, 1009 | "uploadTimestamp": 1454256286000 1010 | }, 1011 | { 1012 | "action": "upload", 1013 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1014 | "fileName": "testfile.bin", 1015 | "size": 140827, 1016 | "uploadTimestamp": 1454256286000 1017 | }, 1018 | { 1019 | "action": "upload", 1020 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1021 | "fileName": "testfile.bin", 1022 | "size": 140827, 1023 | "uploadTimestamp": 1454256286000 1024 | }, 1025 | { 1026 | "action": "upload", 1027 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1028 | "fileName": "testfile.bin", 1029 | "size": 140827, 1030 | "uploadTimestamp": 1454256286000 1031 | }, 1032 | { 1033 | "action": "upload", 1034 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1035 | "fileName": "testfile.bin", 1036 | "size": 140827, 1037 | "uploadTimestamp": 1454256286000 1038 | },{ 1039 | "action": "upload", 1040 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1041 | "fileName": "testfile.bin", 1042 | "size": 140827, 1043 | "uploadTimestamp": 1454256286000 1044 | }, 1045 | { 1046 | "action": "upload", 1047 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1048 | "fileName": "testfile.bin", 1049 | "size": 140827, 1050 | "uploadTimestamp": 1454256286000 1051 | }, 1052 | { 1053 | "action": "upload", 1054 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1055 | "fileName": "testfile.bin", 1056 | "size": 140827, 1057 | "uploadTimestamp": 1454256286000 1058 | }, 1059 | { 1060 | "action": "upload", 1061 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1062 | "fileName": "testfile.bin", 1063 | "size": 140827, 1064 | "uploadTimestamp": 1454256286000 1065 | }, 1066 | { 1067 | "action": "upload", 1068 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1069 | "fileName": "testfile.bin", 1070 | "size": 140827, 1071 | "uploadTimestamp": 1454256286000 1072 | }, 1073 | { 1074 | "action": "upload", 1075 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1076 | "fileName": "testfile.bin", 1077 | "size": 140827, 1078 | "uploadTimestamp": 1454256286000 1079 | }, 1080 | { 1081 | "action": "upload", 1082 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1083 | "fileName": "testfile.bin", 1084 | "size": 140827, 1085 | "uploadTimestamp": 1454256286000 1086 | }, 1087 | { 1088 | "action": "upload", 1089 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1090 | "fileName": "testfile.bin", 1091 | "size": 140827, 1092 | "uploadTimestamp": 1454256286000 1093 | }, 1094 | { 1095 | "action": "upload", 1096 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1097 | "fileName": "testfile.bin", 1098 | "size": 140827, 1099 | "uploadTimestamp": 1454256286000 1100 | }, 1101 | { 1102 | "action": "upload", 1103 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1104 | "fileName": "testfile.bin", 1105 | "size": 140827, 1106 | "uploadTimestamp": 1454256286000 1107 | },{ 1108 | "action": "upload", 1109 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1110 | "fileName": "testfile.bin", 1111 | "size": 140827, 1112 | "uploadTimestamp": 1454256286000 1113 | }, 1114 | { 1115 | "action": "upload", 1116 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1117 | "fileName": "testfile.bin", 1118 | "size": 140827, 1119 | "uploadTimestamp": 1454256286000 1120 | }, 1121 | { 1122 | "action": "upload", 1123 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1124 | "fileName": "testfile.bin", 1125 | "size": 140827, 1126 | "uploadTimestamp": 1454256286000 1127 | }, 1128 | { 1129 | "action": "upload", 1130 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1131 | "fileName": "testfile.bin", 1132 | "size": 140827, 1133 | "uploadTimestamp": 1454256286000 1134 | }, 1135 | { 1136 | "action": "upload", 1137 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1138 | "fileName": "testfile.bin", 1139 | "size": 140827, 1140 | "uploadTimestamp": 1454256286000 1141 | }, 1142 | { 1143 | "action": "upload", 1144 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1145 | "fileName": "testfile.bin", 1146 | "size": 140827, 1147 | "uploadTimestamp": 1454256286000 1148 | }, 1149 | { 1150 | "action": "upload", 1151 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1152 | "fileName": "testfile.bin", 1153 | "size": 140827, 1154 | "uploadTimestamp": 1454256286000 1155 | }, 1156 | { 1157 | "action": "upload", 1158 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1159 | "fileName": "testfile.bin", 1160 | "size": 140827, 1161 | "uploadTimestamp": 1454256286000 1162 | }, 1163 | { 1164 | "action": "upload", 1165 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1166 | "fileName": "testfile.bin", 1167 | "size": 140827, 1168 | "uploadTimestamp": 1454256286000 1169 | }, 1170 | { 1171 | "action": "upload", 1172 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1173 | "fileName": "testfile.bin", 1174 | "size": 140827, 1175 | "uploadTimestamp": 1454256286000 1176 | },{ 1177 | "action": "upload", 1178 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1179 | "fileName": "testfile.bin", 1180 | "size": 140827, 1181 | "uploadTimestamp": 1454256286000 1182 | }, 1183 | { 1184 | "action": "upload", 1185 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1186 | "fileName": "testfile.bin", 1187 | "size": 140827, 1188 | "uploadTimestamp": 1454256286000 1189 | }, 1190 | { 1191 | "action": "upload", 1192 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1193 | "fileName": "testfile.bin", 1194 | "size": 140827, 1195 | "uploadTimestamp": 1454256286000 1196 | }, 1197 | { 1198 | "action": "upload", 1199 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1200 | "fileName": "testfile.bin", 1201 | "size": 140827, 1202 | "uploadTimestamp": 1454256286000 1203 | }, 1204 | { 1205 | "action": "upload", 1206 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1207 | "fileName": "testfile.bin", 1208 | "size": 140827, 1209 | "uploadTimestamp": 1454256286000 1210 | }, 1211 | { 1212 | "action": "upload", 1213 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1214 | "fileName": "testfile.bin", 1215 | "size": 140827, 1216 | "uploadTimestamp": 1454256286000 1217 | }, 1218 | { 1219 | "action": "upload", 1220 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1221 | "fileName": "testfile.bin", 1222 | "size": 140827, 1223 | "uploadTimestamp": 1454256286000 1224 | }, 1225 | { 1226 | "action": "upload", 1227 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1228 | "fileName": "testfile.bin", 1229 | "size": 140827, 1230 | "uploadTimestamp": 1454256286000 1231 | }, 1232 | { 1233 | "action": "upload", 1234 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1235 | "fileName": "testfile.bin", 1236 | "size": 140827, 1237 | "uploadTimestamp": 1454256286000 1238 | }, 1239 | { 1240 | "action": "upload", 1241 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1242 | "fileName": "testfile.bin", 1243 | "size": 140827, 1244 | "uploadTimestamp": 1454256286000 1245 | },{ 1246 | "action": "upload", 1247 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1248 | "fileName": "testfile.bin", 1249 | "size": 140827, 1250 | "uploadTimestamp": 1454256286000 1251 | }, 1252 | { 1253 | "action": "upload", 1254 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1255 | "fileName": "testfile.bin", 1256 | "size": 140827, 1257 | "uploadTimestamp": 1454256286000 1258 | }, 1259 | { 1260 | "action": "upload", 1261 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1262 | "fileName": "testfile.bin", 1263 | "size": 140827, 1264 | "uploadTimestamp": 1454256286000 1265 | }, 1266 | { 1267 | "action": "upload", 1268 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1269 | "fileName": "testfile.bin", 1270 | "size": 140827, 1271 | "uploadTimestamp": 1454256286000 1272 | }, 1273 | { 1274 | "action": "upload", 1275 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1276 | "fileName": "testfile.bin", 1277 | "size": 140827, 1278 | "uploadTimestamp": 1454256286000 1279 | }, 1280 | { 1281 | "action": "upload", 1282 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1283 | "fileName": "testfile.bin", 1284 | "size": 140827, 1285 | "uploadTimestamp": 1454256286000 1286 | }, 1287 | { 1288 | "action": "upload", 1289 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1290 | "fileName": "testfile.bin", 1291 | "size": 140827, 1292 | "uploadTimestamp": 1454256286000 1293 | }, 1294 | { 1295 | "action": "upload", 1296 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1297 | "fileName": "testfile.bin", 1298 | "size": 140827, 1299 | "uploadTimestamp": 1454256286000 1300 | }, 1301 | { 1302 | "action": "upload", 1303 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1304 | "fileName": "testfile.bin", 1305 | "size": 140827, 1306 | "uploadTimestamp": 1454256286000 1307 | }, 1308 | { 1309 | "action": "upload", 1310 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1311 | "fileName": "testfile.bin", 1312 | "size": 140827, 1313 | "uploadTimestamp": 1454256286000 1314 | },{ 1315 | "action": "upload", 1316 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1317 | "fileName": "testfile.bin", 1318 | "size": 140827, 1319 | "uploadTimestamp": 1454256286000 1320 | }, 1321 | { 1322 | "action": "upload", 1323 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1324 | "fileName": "testfile.bin", 1325 | "size": 140827, 1326 | "uploadTimestamp": 1454256286000 1327 | }, 1328 | { 1329 | "action": "upload", 1330 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1331 | "fileName": "testfile.bin", 1332 | "size": 140827, 1333 | "uploadTimestamp": 1454256286000 1334 | }, 1335 | { 1336 | "action": "upload", 1337 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1338 | "fileName": "testfile.bin", 1339 | "size": 140827, 1340 | "uploadTimestamp": 1454256286000 1341 | }, 1342 | { 1343 | "action": "upload", 1344 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1345 | "fileName": "testfile.bin", 1346 | "size": 140827, 1347 | "uploadTimestamp": 1454256286000 1348 | }, 1349 | { 1350 | "action": "upload", 1351 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1352 | "fileName": "testfile.bin", 1353 | "size": 140827, 1354 | "uploadTimestamp": 1454256286000 1355 | }, 1356 | { 1357 | "action": "upload", 1358 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1359 | "fileName": "testfile.bin", 1360 | "size": 140827, 1361 | "uploadTimestamp": 1454256286000 1362 | }, 1363 | { 1364 | "action": "upload", 1365 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1366 | "fileName": "testfile.bin", 1367 | "size": 140827, 1368 | "uploadTimestamp": 1454256286000 1369 | }, 1370 | { 1371 | "action": "upload", 1372 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1373 | "fileName": "testfile.bin", 1374 | "size": 140827, 1375 | "uploadTimestamp": 1454256286000 1376 | }, 1377 | { 1378 | "action": "upload", 1379 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1380 | "fileName": "testfile.bin", 1381 | "size": 140827, 1382 | "uploadTimestamp": 1454256286000 1383 | },{ 1384 | "action": "upload", 1385 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1386 | "fileName": "testfile.bin", 1387 | "size": 140827, 1388 | "uploadTimestamp": 1454256286000 1389 | }, 1390 | { 1391 | "action": "upload", 1392 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1393 | "fileName": "testfile.bin", 1394 | "size": 140827, 1395 | "uploadTimestamp": 1454256286000 1396 | }, 1397 | { 1398 | "action": "upload", 1399 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1400 | "fileName": "testfile.bin", 1401 | "size": 140827, 1402 | "uploadTimestamp": 1454256286000 1403 | }, 1404 | { 1405 | "action": "upload", 1406 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1407 | "fileName": "testfile.bin", 1408 | "size": 140827, 1409 | "uploadTimestamp": 1454256286000 1410 | }, 1411 | { 1412 | "action": "upload", 1413 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1414 | "fileName": "testfile.bin", 1415 | "size": 140827, 1416 | "uploadTimestamp": 1454256286000 1417 | }, 1418 | { 1419 | "action": "upload", 1420 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1421 | "fileName": "testfile.bin", 1422 | "size": 140827, 1423 | "uploadTimestamp": 1454256286000 1424 | }, 1425 | { 1426 | "action": "upload", 1427 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1428 | "fileName": "testfile.bin", 1429 | "size": 140827, 1430 | "uploadTimestamp": 1454256286000 1431 | }, 1432 | { 1433 | "action": "upload", 1434 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1435 | "fileName": "testfile.bin", 1436 | "size": 140827, 1437 | "uploadTimestamp": 1454256286000 1438 | }, 1439 | { 1440 | "action": "upload", 1441 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1442 | "fileName": "testfile.bin", 1443 | "size": 140827, 1444 | "uploadTimestamp": 1454256286000 1445 | }, 1446 | { 1447 | "action": "upload", 1448 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1449 | "fileName": "testfile.bin", 1450 | "size": 140827, 1451 | "uploadTimestamp": 1454256286000 1452 | },{ 1453 | "action": "upload", 1454 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1455 | "fileName": "testfile.bin", 1456 | "size": 140827, 1457 | "uploadTimestamp": 1454256286000 1458 | }, 1459 | { 1460 | "action": "upload", 1461 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1462 | "fileName": "testfile.bin", 1463 | "size": 140827, 1464 | "uploadTimestamp": 1454256286000 1465 | }, 1466 | { 1467 | "action": "upload", 1468 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1469 | "fileName": "testfile.bin", 1470 | "size": 140827, 1471 | "uploadTimestamp": 1454256286000 1472 | }, 1473 | { 1474 | "action": "upload", 1475 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1476 | "fileName": "testfile.bin", 1477 | "size": 140827, 1478 | "uploadTimestamp": 1454256286000 1479 | }, 1480 | { 1481 | "action": "upload", 1482 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1483 | "fileName": "testfile.bin", 1484 | "size": 140827, 1485 | "uploadTimestamp": 1454256286000 1486 | }, 1487 | { 1488 | "action": "upload", 1489 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1490 | "fileName": "testfile.bin", 1491 | "size": 140827, 1492 | "uploadTimestamp": 1454256286000 1493 | }, 1494 | { 1495 | "action": "upload", 1496 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1497 | "fileName": "testfile.bin", 1498 | "size": 140827, 1499 | "uploadTimestamp": 1454256286000 1500 | }, 1501 | { 1502 | "action": "upload", 1503 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1504 | "fileName": "testfile.bin", 1505 | "size": 140827, 1506 | "uploadTimestamp": 1454256286000 1507 | }, 1508 | { 1509 | "action": "upload", 1510 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1511 | "fileName": "testfile.bin", 1512 | "size": 140827, 1513 | "uploadTimestamp": 1454256286000 1514 | }, 1515 | { 1516 | "action": "upload", 1517 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1518 | "fileName": "testfile.bin", 1519 | "size": 140827, 1520 | "uploadTimestamp": 1454256286000 1521 | },{ 1522 | "action": "upload", 1523 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1524 | "fileName": "testfile.bin", 1525 | "size": 140827, 1526 | "uploadTimestamp": 1454256286000 1527 | }, 1528 | { 1529 | "action": "upload", 1530 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1531 | "fileName": "testfile.bin", 1532 | "size": 140827, 1533 | "uploadTimestamp": 1454256286000 1534 | }, 1535 | { 1536 | "action": "upload", 1537 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1538 | "fileName": "testfile.bin", 1539 | "size": 140827, 1540 | "uploadTimestamp": 1454256286000 1541 | }, 1542 | { 1543 | "action": "upload", 1544 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1545 | "fileName": "testfile.bin", 1546 | "size": 140827, 1547 | "uploadTimestamp": 1454256286000 1548 | }, 1549 | { 1550 | "action": "upload", 1551 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1552 | "fileName": "testfile.bin", 1553 | "size": 140827, 1554 | "uploadTimestamp": 1454256286000 1555 | }, 1556 | { 1557 | "action": "upload", 1558 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1559 | "fileName": "testfile.bin", 1560 | "size": 140827, 1561 | "uploadTimestamp": 1454256286000 1562 | }, 1563 | { 1564 | "action": "upload", 1565 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1566 | "fileName": "testfile.bin", 1567 | "size": 140827, 1568 | "uploadTimestamp": 1454256286000 1569 | }, 1570 | { 1571 | "action": "upload", 1572 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1573 | "fileName": "testfile.bin", 1574 | "size": 140827, 1575 | "uploadTimestamp": 1454256286000 1576 | }, 1577 | { 1578 | "action": "upload", 1579 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1580 | "fileName": "testfile.bin", 1581 | "size": 140827, 1582 | "uploadTimestamp": 1454256286000 1583 | }, 1584 | { 1585 | "action": "upload", 1586 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1587 | "fileName": "testfile.bin", 1588 | "size": 140827, 1589 | "uploadTimestamp": 1454256286000 1590 | },{ 1591 | "action": "upload", 1592 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1593 | "fileName": "testfile.bin", 1594 | "size": 140827, 1595 | "uploadTimestamp": 1454256286000 1596 | }, 1597 | { 1598 | "action": "upload", 1599 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1600 | "fileName": "testfile.bin", 1601 | "size": 140827, 1602 | "uploadTimestamp": 1454256286000 1603 | }, 1604 | { 1605 | "action": "upload", 1606 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1607 | "fileName": "testfile.bin", 1608 | "size": 140827, 1609 | "uploadTimestamp": 1454256286000 1610 | }, 1611 | { 1612 | "action": "upload", 1613 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1614 | "fileName": "testfile.bin", 1615 | "size": 140827, 1616 | "uploadTimestamp": 1454256286000 1617 | }, 1618 | { 1619 | "action": "upload", 1620 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1621 | "fileName": "testfile.bin", 1622 | "size": 140827, 1623 | "uploadTimestamp": 1454256286000 1624 | }, 1625 | { 1626 | "action": "upload", 1627 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1628 | "fileName": "testfile.bin", 1629 | "size": 140827, 1630 | "uploadTimestamp": 1454256286000 1631 | }, 1632 | { 1633 | "action": "upload", 1634 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1635 | "fileName": "testfile.bin", 1636 | "size": 140827, 1637 | "uploadTimestamp": 1454256286000 1638 | }, 1639 | { 1640 | "action": "upload", 1641 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1642 | "fileName": "testfile.bin", 1643 | "size": 140827, 1644 | "uploadTimestamp": 1454256286000 1645 | }, 1646 | { 1647 | "action": "upload", 1648 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1649 | "fileName": "testfile.bin", 1650 | "size": 140827, 1651 | "uploadTimestamp": 1454256286000 1652 | }, 1653 | { 1654 | "action": "upload", 1655 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1656 | "fileName": "testfile.bin", 1657 | "size": 140827, 1658 | "uploadTimestamp": 1454256286000 1659 | },{ 1660 | "action": "upload", 1661 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1662 | "fileName": "testfile.bin", 1663 | "size": 140827, 1664 | "uploadTimestamp": 1454256286000 1665 | }, 1666 | { 1667 | "action": "upload", 1668 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1669 | "fileName": "testfile.bin", 1670 | "size": 140827, 1671 | "uploadTimestamp": 1454256286000 1672 | }, 1673 | { 1674 | "action": "upload", 1675 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1676 | "fileName": "testfile.bin", 1677 | "size": 140827, 1678 | "uploadTimestamp": 1454256286000 1679 | }, 1680 | { 1681 | "action": "upload", 1682 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1683 | "fileName": "testfile.bin", 1684 | "size": 140827, 1685 | "uploadTimestamp": 1454256286000 1686 | }, 1687 | { 1688 | "action": "upload", 1689 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1690 | "fileName": "testfile.bin", 1691 | "size": 140827, 1692 | "uploadTimestamp": 1454256286000 1693 | }, 1694 | { 1695 | "action": "upload", 1696 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1697 | "fileName": "testfile.bin", 1698 | "size": 140827, 1699 | "uploadTimestamp": 1454256286000 1700 | }, 1701 | { 1702 | "action": "upload", 1703 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1704 | "fileName": "testfile.bin", 1705 | "size": 140827, 1706 | "uploadTimestamp": 1454256286000 1707 | }, 1708 | { 1709 | "action": "upload", 1710 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1711 | "fileName": "testfile.bin", 1712 | "size": 140827, 1713 | "uploadTimestamp": 1454256286000 1714 | }, 1715 | { 1716 | "action": "upload", 1717 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1718 | "fileName": "testfile.bin", 1719 | "size": 140827, 1720 | "uploadTimestamp": 1454256286000 1721 | }, 1722 | { 1723 | "action": "upload", 1724 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1725 | "fileName": "testfile.bin", 1726 | "size": 140827, 1727 | "uploadTimestamp": 1454256286000 1728 | },{ 1729 | "action": "upload", 1730 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1731 | "fileName": "testfile.bin", 1732 | "size": 140827, 1733 | "uploadTimestamp": 1454256286000 1734 | }, 1735 | { 1736 | "action": "upload", 1737 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1738 | "fileName": "testfile.bin", 1739 | "size": 140827, 1740 | "uploadTimestamp": 1454256286000 1741 | }, 1742 | { 1743 | "action": "upload", 1744 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1745 | "fileName": "testfile.bin", 1746 | "size": 140827, 1747 | "uploadTimestamp": 1454256286000 1748 | }, 1749 | { 1750 | "action": "upload", 1751 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1752 | "fileName": "testfile.bin", 1753 | "size": 140827, 1754 | "uploadTimestamp": 1454256286000 1755 | }, 1756 | { 1757 | "action": "upload", 1758 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1759 | "fileName": "testfile.bin", 1760 | "size": 140827, 1761 | "uploadTimestamp": 1454256286000 1762 | }, 1763 | { 1764 | "action": "upload", 1765 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1766 | "fileName": "testfile.bin", 1767 | "size": 140827, 1768 | "uploadTimestamp": 1454256286000 1769 | }, 1770 | { 1771 | "action": "upload", 1772 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1773 | "fileName": "testfile.bin", 1774 | "size": 140827, 1775 | "uploadTimestamp": 1454256286000 1776 | }, 1777 | { 1778 | "action": "upload", 1779 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1780 | "fileName": "testfile.bin", 1781 | "size": 140827, 1782 | "uploadTimestamp": 1454256286000 1783 | }, 1784 | { 1785 | "action": "upload", 1786 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1787 | "fileName": "testfile.bin", 1788 | "size": 140827, 1789 | "uploadTimestamp": 1454256286000 1790 | }, 1791 | { 1792 | "action": "upload", 1793 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1794 | "fileName": "testfile.bin", 1795 | "size": 140827, 1796 | "uploadTimestamp": 1454256286000 1797 | },{ 1798 | "action": "upload", 1799 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1800 | "fileName": "testfile.bin", 1801 | "size": 140827, 1802 | "uploadTimestamp": 1454256286000 1803 | }, 1804 | { 1805 | "action": "upload", 1806 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1807 | "fileName": "testfile.bin", 1808 | "size": 140827, 1809 | "uploadTimestamp": 1454256286000 1810 | }, 1811 | { 1812 | "action": "upload", 1813 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1814 | "fileName": "testfile.bin", 1815 | "size": 140827, 1816 | "uploadTimestamp": 1454256286000 1817 | }, 1818 | { 1819 | "action": "upload", 1820 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1821 | "fileName": "testfile.bin", 1822 | "size": 140827, 1823 | "uploadTimestamp": 1454256286000 1824 | }, 1825 | { 1826 | "action": "upload", 1827 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1828 | "fileName": "testfile.bin", 1829 | "size": 140827, 1830 | "uploadTimestamp": 1454256286000 1831 | }, 1832 | { 1833 | "action": "upload", 1834 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1835 | "fileName": "testfile.bin", 1836 | "size": 140827, 1837 | "uploadTimestamp": 1454256286000 1838 | }, 1839 | { 1840 | "action": "upload", 1841 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1842 | "fileName": "testfile.bin", 1843 | "size": 140827, 1844 | "uploadTimestamp": 1454256286000 1845 | }, 1846 | { 1847 | "action": "upload", 1848 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1849 | "fileName": "testfile.bin", 1850 | "size": 140827, 1851 | "uploadTimestamp": 1454256286000 1852 | }, 1853 | { 1854 | "action": "upload", 1855 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1856 | "fileName": "testfile.bin", 1857 | "size": 140827, 1858 | "uploadTimestamp": 1454256286000 1859 | }, 1860 | { 1861 | "action": "upload", 1862 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1863 | "fileName": "testfile.bin", 1864 | "size": 140827, 1865 | "uploadTimestamp": 1454256286000 1866 | },{ 1867 | "action": "upload", 1868 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1869 | "fileName": "testfile.bin", 1870 | "size": 140827, 1871 | "uploadTimestamp": 1454256286000 1872 | }, 1873 | { 1874 | "action": "upload", 1875 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1876 | "fileName": "testfile.bin", 1877 | "size": 140827, 1878 | "uploadTimestamp": 1454256286000 1879 | }, 1880 | { 1881 | "action": "upload", 1882 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1883 | "fileName": "testfile.bin", 1884 | "size": 140827, 1885 | "uploadTimestamp": 1454256286000 1886 | }, 1887 | { 1888 | "action": "upload", 1889 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1890 | "fileName": "testfile.bin", 1891 | "size": 140827, 1892 | "uploadTimestamp": 1454256286000 1893 | }, 1894 | { 1895 | "action": "upload", 1896 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1897 | "fileName": "testfile.bin", 1898 | "size": 140827, 1899 | "uploadTimestamp": 1454256286000 1900 | }, 1901 | { 1902 | "action": "upload", 1903 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1904 | "fileName": "testfile.bin", 1905 | "size": 140827, 1906 | "uploadTimestamp": 1454256286000 1907 | }, 1908 | { 1909 | "action": "upload", 1910 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1911 | "fileName": "testfile.bin", 1912 | "size": 140827, 1913 | "uploadTimestamp": 1454256286000 1914 | }, 1915 | { 1916 | "action": "upload", 1917 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1918 | "fileName": "testfile.bin", 1919 | "size": 140827, 1920 | "uploadTimestamp": 1454256286000 1921 | }, 1922 | { 1923 | "action": "upload", 1924 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1925 | "fileName": "testfile.bin", 1926 | "size": 140827, 1927 | "uploadTimestamp": 1454256286000 1928 | }, 1929 | { 1930 | "action": "upload", 1931 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1932 | "fileName": "testfile.bin", 1933 | "size": 140827, 1934 | "uploadTimestamp": 1454256286000 1935 | },{ 1936 | "action": "upload", 1937 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1938 | "fileName": "testfile.bin", 1939 | "size": 140827, 1940 | "uploadTimestamp": 1454256286000 1941 | }, 1942 | { 1943 | "action": "upload", 1944 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1945 | "fileName": "testfile.bin", 1946 | "size": 140827, 1947 | "uploadTimestamp": 1454256286000 1948 | }, 1949 | { 1950 | "action": "upload", 1951 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1952 | "fileName": "testfile.bin", 1953 | "size": 140827, 1954 | "uploadTimestamp": 1454256286000 1955 | }, 1956 | { 1957 | "action": "upload", 1958 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1959 | "fileName": "testfile.bin", 1960 | "size": 140827, 1961 | "uploadTimestamp": 1454256286000 1962 | }, 1963 | { 1964 | "action": "upload", 1965 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1966 | "fileName": "testfile.bin", 1967 | "size": 140827, 1968 | "uploadTimestamp": 1454256286000 1969 | }, 1970 | { 1971 | "action": "upload", 1972 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1973 | "fileName": "testfile.bin", 1974 | "size": 140827, 1975 | "uploadTimestamp": 1454256286000 1976 | }, 1977 | { 1978 | "action": "upload", 1979 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1980 | "fileName": "testfile.bin", 1981 | "size": 140827, 1982 | "uploadTimestamp": 1454256286000 1983 | }, 1984 | { 1985 | "action": "upload", 1986 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1987 | "fileName": "testfile.bin", 1988 | "size": 140827, 1989 | "uploadTimestamp": 1454256286000 1990 | }, 1991 | { 1992 | "action": "upload", 1993 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 1994 | "fileName": "testfile.bin", 1995 | "size": 140827, 1996 | "uploadTimestamp": 1454256286000 1997 | }, 1998 | { 1999 | "action": "upload", 2000 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2001 | "fileName": "testfile.bin", 2002 | "size": 140827, 2003 | "uploadTimestamp": 1454256286000 2004 | },{ 2005 | "action": "upload", 2006 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2007 | "fileName": "testfile.bin", 2008 | "size": 140827, 2009 | "uploadTimestamp": 1454256286000 2010 | }, 2011 | { 2012 | "action": "upload", 2013 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2014 | "fileName": "testfile.bin", 2015 | "size": 140827, 2016 | "uploadTimestamp": 1454256286000 2017 | }, 2018 | { 2019 | "action": "upload", 2020 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2021 | "fileName": "testfile.bin", 2022 | "size": 140827, 2023 | "uploadTimestamp": 1454256286000 2024 | }, 2025 | { 2026 | "action": "upload", 2027 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2028 | "fileName": "testfile.bin", 2029 | "size": 140827, 2030 | "uploadTimestamp": 1454256286000 2031 | }, 2032 | { 2033 | "action": "upload", 2034 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2035 | "fileName": "testfile.bin", 2036 | "size": 140827, 2037 | "uploadTimestamp": 1454256286000 2038 | }, 2039 | { 2040 | "action": "upload", 2041 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2042 | "fileName": "testfile.bin", 2043 | "size": 140827, 2044 | "uploadTimestamp": 1454256286000 2045 | }, 2046 | { 2047 | "action": "upload", 2048 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2049 | "fileName": "testfile.bin", 2050 | "size": 140827, 2051 | "uploadTimestamp": 1454256286000 2052 | }, 2053 | { 2054 | "action": "upload", 2055 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2056 | "fileName": "testfile.bin", 2057 | "size": 140827, 2058 | "uploadTimestamp": 1454256286000 2059 | }, 2060 | { 2061 | "action": "upload", 2062 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2063 | "fileName": "testfile.bin", 2064 | "size": 140827, 2065 | "uploadTimestamp": 1454256286000 2066 | }, 2067 | { 2068 | "action": "upload", 2069 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2070 | "fileName": "testfile.bin", 2071 | "size": 140827, 2072 | "uploadTimestamp": 1454256286000 2073 | },{ 2074 | "action": "upload", 2075 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2076 | "fileName": "testfile.bin", 2077 | "size": 140827, 2078 | "uploadTimestamp": 1454256286000 2079 | }, 2080 | { 2081 | "action": "upload", 2082 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2083 | "fileName": "testfile.bin", 2084 | "size": 140827, 2085 | "uploadTimestamp": 1454256286000 2086 | }, 2087 | { 2088 | "action": "upload", 2089 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2090 | "fileName": "testfile.bin", 2091 | "size": 140827, 2092 | "uploadTimestamp": 1454256286000 2093 | }, 2094 | { 2095 | "action": "upload", 2096 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2097 | "fileName": "testfile.bin", 2098 | "size": 140827, 2099 | "uploadTimestamp": 1454256286000 2100 | }, 2101 | { 2102 | "action": "upload", 2103 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2104 | "fileName": "testfile.bin", 2105 | "size": 140827, 2106 | "uploadTimestamp": 1454256286000 2107 | }, 2108 | { 2109 | "action": "upload", 2110 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2111 | "fileName": "testfile.bin", 2112 | "size": 140827, 2113 | "uploadTimestamp": 1454256286000 2114 | }, 2115 | { 2116 | "action": "upload", 2117 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2118 | "fileName": "testfile.bin", 2119 | "size": 140827, 2120 | "uploadTimestamp": 1454256286000 2121 | }, 2122 | { 2123 | "action": "upload", 2124 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2125 | "fileName": "testfile.bin", 2126 | "size": 140827, 2127 | "uploadTimestamp": 1454256286000 2128 | }, 2129 | { 2130 | "action": "upload", 2131 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2132 | "fileName": "testfile.bin", 2133 | "size": 140827, 2134 | "uploadTimestamp": 1454256286000 2135 | }, 2136 | { 2137 | "action": "upload", 2138 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2139 | "fileName": "testfile.bin", 2140 | "size": 140827, 2141 | "uploadTimestamp": 1454256286000 2142 | },{ 2143 | "action": "upload", 2144 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2145 | "fileName": "testfile.bin", 2146 | "size": 140827, 2147 | "uploadTimestamp": 1454256286000 2148 | }, 2149 | { 2150 | "action": "upload", 2151 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2152 | "fileName": "testfile.bin", 2153 | "size": 140827, 2154 | "uploadTimestamp": 1454256286000 2155 | }, 2156 | { 2157 | "action": "upload", 2158 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2159 | "fileName": "testfile.bin", 2160 | "size": 140827, 2161 | "uploadTimestamp": 1454256286000 2162 | }, 2163 | { 2164 | "action": "upload", 2165 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2166 | "fileName": "testfile.bin", 2167 | "size": 140827, 2168 | "uploadTimestamp": 1454256286000 2169 | }, 2170 | { 2171 | "action": "upload", 2172 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2173 | "fileName": "testfile.bin", 2174 | "size": 140827, 2175 | "uploadTimestamp": 1454256286000 2176 | }, 2177 | { 2178 | "action": "upload", 2179 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2180 | "fileName": "testfile.bin", 2181 | "size": 140827, 2182 | "uploadTimestamp": 1454256286000 2183 | }, 2184 | { 2185 | "action": "upload", 2186 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2187 | "fileName": "testfile.bin", 2188 | "size": 140827, 2189 | "uploadTimestamp": 1454256286000 2190 | }, 2191 | { 2192 | "action": "upload", 2193 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2194 | "fileName": "testfile.bin", 2195 | "size": 140827, 2196 | "uploadTimestamp": 1454256286000 2197 | }, 2198 | { 2199 | "action": "upload", 2200 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2201 | "fileName": "testfile.bin", 2202 | "size": 140827, 2203 | "uploadTimestamp": 1454256286000 2204 | }, 2205 | { 2206 | "action": "upload", 2207 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2208 | "fileName": "testfile.bin", 2209 | "size": 140827, 2210 | "uploadTimestamp": 1454256286000 2211 | },{ 2212 | "action": "upload", 2213 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2214 | "fileName": "testfile.bin", 2215 | "size": 140827, 2216 | "uploadTimestamp": 1454256286000 2217 | }, 2218 | { 2219 | "action": "upload", 2220 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2221 | "fileName": "testfile.bin", 2222 | "size": 140827, 2223 | "uploadTimestamp": 1454256286000 2224 | }, 2225 | { 2226 | "action": "upload", 2227 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2228 | "fileName": "testfile.bin", 2229 | "size": 140827, 2230 | "uploadTimestamp": 1454256286000 2231 | }, 2232 | { 2233 | "action": "upload", 2234 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2235 | "fileName": "testfile.bin", 2236 | "size": 140827, 2237 | "uploadTimestamp": 1454256286000 2238 | }, 2239 | { 2240 | "action": "upload", 2241 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2242 | "fileName": "testfile.bin", 2243 | "size": 140827, 2244 | "uploadTimestamp": 1454256286000 2245 | }, 2246 | { 2247 | "action": "upload", 2248 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2249 | "fileName": "testfile.bin", 2250 | "size": 140827, 2251 | "uploadTimestamp": 1454256286000 2252 | }, 2253 | { 2254 | "action": "upload", 2255 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2256 | "fileName": "testfile.bin", 2257 | "size": 140827, 2258 | "uploadTimestamp": 1454256286000 2259 | }, 2260 | { 2261 | "action": "upload", 2262 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2263 | "fileName": "testfile.bin", 2264 | "size": 140827, 2265 | "uploadTimestamp": 1454256286000 2266 | }, 2267 | { 2268 | "action": "upload", 2269 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2270 | "fileName": "testfile.bin", 2271 | "size": 140827, 2272 | "uploadTimestamp": 1454256286000 2273 | }, 2274 | { 2275 | "action": "upload", 2276 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2277 | "fileName": "testfile.bin", 2278 | "size": 140827, 2279 | "uploadTimestamp": 1454256286000 2280 | },{ 2281 | "action": "upload", 2282 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2283 | "fileName": "testfile.bin", 2284 | "size": 140827, 2285 | "uploadTimestamp": 1454256286000 2286 | }, 2287 | { 2288 | "action": "upload", 2289 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2290 | "fileName": "testfile.bin", 2291 | "size": 140827, 2292 | "uploadTimestamp": 1454256286000 2293 | }, 2294 | { 2295 | "action": "upload", 2296 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2297 | "fileName": "testfile.bin", 2298 | "size": 140827, 2299 | "uploadTimestamp": 1454256286000 2300 | }, 2301 | { 2302 | "action": "upload", 2303 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2304 | "fileName": "testfile.bin", 2305 | "size": 140827, 2306 | "uploadTimestamp": 1454256286000 2307 | }, 2308 | { 2309 | "action": "upload", 2310 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2311 | "fileName": "testfile.bin", 2312 | "size": 140827, 2313 | "uploadTimestamp": 1454256286000 2314 | }, 2315 | { 2316 | "action": "upload", 2317 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2318 | "fileName": "testfile.bin", 2319 | "size": 140827, 2320 | "uploadTimestamp": 1454256286000 2321 | }, 2322 | { 2323 | "action": "upload", 2324 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2325 | "fileName": "testfile.bin", 2326 | "size": 140827, 2327 | "uploadTimestamp": 1454256286000 2328 | }, 2329 | { 2330 | "action": "upload", 2331 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2332 | "fileName": "testfile.bin", 2333 | "size": 140827, 2334 | "uploadTimestamp": 1454256286000 2335 | }, 2336 | { 2337 | "action": "upload", 2338 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2339 | "fileName": "testfile.bin", 2340 | "size": 140827, 2341 | "uploadTimestamp": 1454256286000 2342 | }, 2343 | { 2344 | "action": "upload", 2345 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2346 | "fileName": "testfile.bin", 2347 | "size": 140827, 2348 | "uploadTimestamp": 1454256286000 2349 | },{ 2350 | "action": "upload", 2351 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2352 | "fileName": "testfile.bin", 2353 | "size": 140827, 2354 | "uploadTimestamp": 1454256286000 2355 | }, 2356 | { 2357 | "action": "upload", 2358 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2359 | "fileName": "testfile.bin", 2360 | "size": 140827, 2361 | "uploadTimestamp": 1454256286000 2362 | }, 2363 | { 2364 | "action": "upload", 2365 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2366 | "fileName": "testfile.bin", 2367 | "size": 140827, 2368 | "uploadTimestamp": 1454256286000 2369 | }, 2370 | { 2371 | "action": "upload", 2372 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2373 | "fileName": "testfile.bin", 2374 | "size": 140827, 2375 | "uploadTimestamp": 1454256286000 2376 | }, 2377 | { 2378 | "action": "upload", 2379 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2380 | "fileName": "testfile.bin", 2381 | "size": 140827, 2382 | "uploadTimestamp": 1454256286000 2383 | }, 2384 | { 2385 | "action": "upload", 2386 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2387 | "fileName": "testfile.bin", 2388 | "size": 140827, 2389 | "uploadTimestamp": 1454256286000 2390 | }, 2391 | { 2392 | "action": "upload", 2393 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2394 | "fileName": "testfile.bin", 2395 | "size": 140827, 2396 | "uploadTimestamp": 1454256286000 2397 | }, 2398 | { 2399 | "action": "upload", 2400 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2401 | "fileName": "testfile.bin", 2402 | "size": 140827, 2403 | "uploadTimestamp": 1454256286000 2404 | }, 2405 | { 2406 | "action": "upload", 2407 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2408 | "fileName": "testfile.bin", 2409 | "size": 140827, 2410 | "uploadTimestamp": 1454256286000 2411 | }, 2412 | { 2413 | "action": "upload", 2414 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2415 | "fileName": "testfile.bin", 2416 | "size": 140827, 2417 | "uploadTimestamp": 1454256286000 2418 | },{ 2419 | "action": "upload", 2420 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2421 | "fileName": "testfile.bin", 2422 | "size": 140827, 2423 | "uploadTimestamp": 1454256286000 2424 | }, 2425 | { 2426 | "action": "upload", 2427 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2428 | "fileName": "testfile.bin", 2429 | "size": 140827, 2430 | "uploadTimestamp": 1454256286000 2431 | }, 2432 | { 2433 | "action": "upload", 2434 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2435 | "fileName": "testfile.bin", 2436 | "size": 140827, 2437 | "uploadTimestamp": 1454256286000 2438 | }, 2439 | { 2440 | "action": "upload", 2441 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2442 | "fileName": "testfile.bin", 2443 | "size": 140827, 2444 | "uploadTimestamp": 1454256286000 2445 | }, 2446 | { 2447 | "action": "upload", 2448 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2449 | "fileName": "testfile.bin", 2450 | "size": 140827, 2451 | "uploadTimestamp": 1454256286000 2452 | }, 2453 | { 2454 | "action": "upload", 2455 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2456 | "fileName": "testfile.bin", 2457 | "size": 140827, 2458 | "uploadTimestamp": 1454256286000 2459 | }, 2460 | { 2461 | "action": "upload", 2462 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2463 | "fileName": "testfile.bin", 2464 | "size": 140827, 2465 | "uploadTimestamp": 1454256286000 2466 | }, 2467 | { 2468 | "action": "upload", 2469 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2470 | "fileName": "testfile.bin", 2471 | "size": 140827, 2472 | "uploadTimestamp": 1454256286000 2473 | }, 2474 | { 2475 | "action": "upload", 2476 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2477 | "fileName": "testfile.bin", 2478 | "size": 140827, 2479 | "uploadTimestamp": 1454256286000 2480 | }, 2481 | { 2482 | "action": "upload", 2483 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2484 | "fileName": "testfile.bin", 2485 | "size": 140827, 2486 | "uploadTimestamp": 1454256286000 2487 | },{ 2488 | "action": "upload", 2489 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2490 | "fileName": "testfile.bin", 2491 | "size": 140827, 2492 | "uploadTimestamp": 1454256286000 2493 | }, 2494 | { 2495 | "action": "upload", 2496 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2497 | "fileName": "testfile.bin", 2498 | "size": 140827, 2499 | "uploadTimestamp": 1454256286000 2500 | }, 2501 | { 2502 | "action": "upload", 2503 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2504 | "fileName": "testfile.bin", 2505 | "size": 140827, 2506 | "uploadTimestamp": 1454256286000 2507 | }, 2508 | { 2509 | "action": "upload", 2510 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2511 | "fileName": "testfile.bin", 2512 | "size": 140827, 2513 | "uploadTimestamp": 1454256286000 2514 | }, 2515 | { 2516 | "action": "upload", 2517 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2518 | "fileName": "testfile.bin", 2519 | "size": 140827, 2520 | "uploadTimestamp": 1454256286000 2521 | }, 2522 | { 2523 | "action": "upload", 2524 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2525 | "fileName": "testfile.bin", 2526 | "size": 140827, 2527 | "uploadTimestamp": 1454256286000 2528 | }, 2529 | { 2530 | "action": "upload", 2531 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2532 | "fileName": "testfile.bin", 2533 | "size": 140827, 2534 | "uploadTimestamp": 1454256286000 2535 | }, 2536 | { 2537 | "action": "upload", 2538 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2539 | "fileName": "testfile.bin", 2540 | "size": 140827, 2541 | "uploadTimestamp": 1454256286000 2542 | }, 2543 | { 2544 | "action": "upload", 2545 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2546 | "fileName": "testfile.bin", 2547 | "size": 140827, 2548 | "uploadTimestamp": 1454256286000 2549 | }, 2550 | { 2551 | "action": "upload", 2552 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2553 | "fileName": "testfile.bin", 2554 | "size": 140827, 2555 | "uploadTimestamp": 1454256286000 2556 | },{ 2557 | "action": "upload", 2558 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2559 | "fileName": "testfile.bin", 2560 | "size": 140827, 2561 | "uploadTimestamp": 1454256286000 2562 | }, 2563 | { 2564 | "action": "upload", 2565 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2566 | "fileName": "testfile.bin", 2567 | "size": 140827, 2568 | "uploadTimestamp": 1454256286000 2569 | }, 2570 | { 2571 | "action": "upload", 2572 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2573 | "fileName": "testfile.bin", 2574 | "size": 140827, 2575 | "uploadTimestamp": 1454256286000 2576 | }, 2577 | { 2578 | "action": "upload", 2579 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2580 | "fileName": "testfile.bin", 2581 | "size": 140827, 2582 | "uploadTimestamp": 1454256286000 2583 | }, 2584 | { 2585 | "action": "upload", 2586 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2587 | "fileName": "testfile.bin", 2588 | "size": 140827, 2589 | "uploadTimestamp": 1454256286000 2590 | }, 2591 | { 2592 | "action": "upload", 2593 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2594 | "fileName": "testfile.bin", 2595 | "size": 140827, 2596 | "uploadTimestamp": 1454256286000 2597 | }, 2598 | { 2599 | "action": "upload", 2600 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2601 | "fileName": "testfile.bin", 2602 | "size": 140827, 2603 | "uploadTimestamp": 1454256286000 2604 | }, 2605 | { 2606 | "action": "upload", 2607 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2608 | "fileName": "testfile.bin", 2609 | "size": 140827, 2610 | "uploadTimestamp": 1454256286000 2611 | }, 2612 | { 2613 | "action": "upload", 2614 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2615 | "fileName": "testfile.bin", 2616 | "size": 140827, 2617 | "uploadTimestamp": 1454256286000 2618 | }, 2619 | { 2620 | "action": "upload", 2621 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2622 | "fileName": "testfile.bin", 2623 | "size": 140827, 2624 | "uploadTimestamp": 1454256286000 2625 | },{ 2626 | "action": "upload", 2627 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2628 | "fileName": "testfile.bin", 2629 | "size": 140827, 2630 | "uploadTimestamp": 1454256286000 2631 | }, 2632 | { 2633 | "action": "upload", 2634 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2635 | "fileName": "testfile.bin", 2636 | "size": 140827, 2637 | "uploadTimestamp": 1454256286000 2638 | }, 2639 | { 2640 | "action": "upload", 2641 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2642 | "fileName": "testfile.bin", 2643 | "size": 140827, 2644 | "uploadTimestamp": 1454256286000 2645 | }, 2646 | { 2647 | "action": "upload", 2648 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2649 | "fileName": "testfile.bin", 2650 | "size": 140827, 2651 | "uploadTimestamp": 1454256286000 2652 | }, 2653 | { 2654 | "action": "upload", 2655 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2656 | "fileName": "testfile.bin", 2657 | "size": 140827, 2658 | "uploadTimestamp": 1454256286000 2659 | }, 2660 | { 2661 | "action": "upload", 2662 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2663 | "fileName": "testfile.bin", 2664 | "size": 140827, 2665 | "uploadTimestamp": 1454256286000 2666 | }, 2667 | { 2668 | "action": "upload", 2669 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2670 | "fileName": "testfile.bin", 2671 | "size": 140827, 2672 | "uploadTimestamp": 1454256286000 2673 | }, 2674 | { 2675 | "action": "upload", 2676 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2677 | "fileName": "testfile.bin", 2678 | "size": 140827, 2679 | "uploadTimestamp": 1454256286000 2680 | }, 2681 | { 2682 | "action": "upload", 2683 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2684 | "fileName": "testfile.bin", 2685 | "size": 140827, 2686 | "uploadTimestamp": 1454256286000 2687 | }, 2688 | { 2689 | "action": "upload", 2690 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2691 | "fileName": "testfile.bin", 2692 | "size": 140827, 2693 | "uploadTimestamp": 1454256286000 2694 | },{ 2695 | "action": "upload", 2696 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2697 | "fileName": "testfile.bin", 2698 | "size": 140827, 2699 | "uploadTimestamp": 1454256286000 2700 | }, 2701 | { 2702 | "action": "upload", 2703 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2704 | "fileName": "testfile.bin", 2705 | "size": 140827, 2706 | "uploadTimestamp": 1454256286000 2707 | }, 2708 | { 2709 | "action": "upload", 2710 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2711 | "fileName": "testfile.bin", 2712 | "size": 140827, 2713 | "uploadTimestamp": 1454256286000 2714 | }, 2715 | { 2716 | "action": "upload", 2717 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2718 | "fileName": "testfile.bin", 2719 | "size": 140827, 2720 | "uploadTimestamp": 1454256286000 2721 | }, 2722 | { 2723 | "action": "upload", 2724 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2725 | "fileName": "testfile.bin", 2726 | "size": 140827, 2727 | "uploadTimestamp": 1454256286000 2728 | }, 2729 | { 2730 | "action": "upload", 2731 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2732 | "fileName": "testfile.bin", 2733 | "size": 140827, 2734 | "uploadTimestamp": 1454256286000 2735 | }, 2736 | { 2737 | "action": "upload", 2738 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2739 | "fileName": "testfile.bin", 2740 | "size": 140827, 2741 | "uploadTimestamp": 1454256286000 2742 | }, 2743 | { 2744 | "action": "upload", 2745 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2746 | "fileName": "testfile.bin", 2747 | "size": 140827, 2748 | "uploadTimestamp": 1454256286000 2749 | }, 2750 | { 2751 | "action": "upload", 2752 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2753 | "fileName": "testfile.bin", 2754 | "size": 140827, 2755 | "uploadTimestamp": 1454256286000 2756 | }, 2757 | { 2758 | "action": "upload", 2759 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2760 | "fileName": "testfile.bin", 2761 | "size": 140827, 2762 | "uploadTimestamp": 1454256286000 2763 | },{ 2764 | "action": "upload", 2765 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2766 | "fileName": "testfile.bin", 2767 | "size": 140827, 2768 | "uploadTimestamp": 1454256286000 2769 | }, 2770 | { 2771 | "action": "upload", 2772 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2773 | "fileName": "testfile.bin", 2774 | "size": 140827, 2775 | "uploadTimestamp": 1454256286000 2776 | }, 2777 | { 2778 | "action": "upload", 2779 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2780 | "fileName": "testfile.bin", 2781 | "size": 140827, 2782 | "uploadTimestamp": 1454256286000 2783 | }, 2784 | { 2785 | "action": "upload", 2786 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2787 | "fileName": "testfile.bin", 2788 | "size": 140827, 2789 | "uploadTimestamp": 1454256286000 2790 | }, 2791 | { 2792 | "action": "upload", 2793 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2794 | "fileName": "testfile.bin", 2795 | "size": 140827, 2796 | "uploadTimestamp": 1454256286000 2797 | }, 2798 | { 2799 | "action": "upload", 2800 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2801 | "fileName": "testfile.bin", 2802 | "size": 140827, 2803 | "uploadTimestamp": 1454256286000 2804 | }, 2805 | { 2806 | "action": "upload", 2807 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2808 | "fileName": "testfile.bin", 2809 | "size": 140827, 2810 | "uploadTimestamp": 1454256286000 2811 | }, 2812 | { 2813 | "action": "upload", 2814 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2815 | "fileName": "testfile.bin", 2816 | "size": 140827, 2817 | "uploadTimestamp": 1454256286000 2818 | }, 2819 | { 2820 | "action": "upload", 2821 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2822 | "fileName": "testfile.bin", 2823 | "size": 140827, 2824 | "uploadTimestamp": 1454256286000 2825 | }, 2826 | { 2827 | "action": "upload", 2828 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2829 | "fileName": "testfile.bin", 2830 | "size": 140827, 2831 | "uploadTimestamp": 1454256286000 2832 | },{ 2833 | "action": "upload", 2834 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2835 | "fileName": "testfile.bin", 2836 | "size": 140827, 2837 | "uploadTimestamp": 1454256286000 2838 | }, 2839 | { 2840 | "action": "upload", 2841 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2842 | "fileName": "testfile.bin", 2843 | "size": 140827, 2844 | "uploadTimestamp": 1454256286000 2845 | }, 2846 | { 2847 | "action": "upload", 2848 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2849 | "fileName": "testfile.bin", 2850 | "size": 140827, 2851 | "uploadTimestamp": 1454256286000 2852 | }, 2853 | { 2854 | "action": "upload", 2855 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2856 | "fileName": "testfile.bin", 2857 | "size": 140827, 2858 | "uploadTimestamp": 1454256286000 2859 | }, 2860 | { 2861 | "action": "upload", 2862 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2863 | "fileName": "testfile.bin", 2864 | "size": 140827, 2865 | "uploadTimestamp": 1454256286000 2866 | }, 2867 | { 2868 | "action": "upload", 2869 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2870 | "fileName": "testfile.bin", 2871 | "size": 140827, 2872 | "uploadTimestamp": 1454256286000 2873 | }, 2874 | { 2875 | "action": "upload", 2876 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2877 | "fileName": "testfile.bin", 2878 | "size": 140827, 2879 | "uploadTimestamp": 1454256286000 2880 | }, 2881 | { 2882 | "action": "upload", 2883 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2884 | "fileName": "testfile.bin", 2885 | "size": 140827, 2886 | "uploadTimestamp": 1454256286000 2887 | }, 2888 | { 2889 | "action": "upload", 2890 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2891 | "fileName": "testfile.bin", 2892 | "size": 140827, 2893 | "uploadTimestamp": 1454256286000 2894 | }, 2895 | { 2896 | "action": "upload", 2897 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2898 | "fileName": "testfile.bin", 2899 | "size": 140827, 2900 | "uploadTimestamp": 1454256286000 2901 | },{ 2902 | "action": "upload", 2903 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2904 | "fileName": "testfile.bin", 2905 | "size": 140827, 2906 | "uploadTimestamp": 1454256286000 2907 | }, 2908 | { 2909 | "action": "upload", 2910 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2911 | "fileName": "testfile.bin", 2912 | "size": 140827, 2913 | "uploadTimestamp": 1454256286000 2914 | }, 2915 | { 2916 | "action": "upload", 2917 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2918 | "fileName": "testfile.bin", 2919 | "size": 140827, 2920 | "uploadTimestamp": 1454256286000 2921 | }, 2922 | { 2923 | "action": "upload", 2924 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2925 | "fileName": "testfile.bin", 2926 | "size": 140827, 2927 | "uploadTimestamp": 1454256286000 2928 | }, 2929 | { 2930 | "action": "upload", 2931 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2932 | "fileName": "testfile.bin", 2933 | "size": 140827, 2934 | "uploadTimestamp": 1454256286000 2935 | }, 2936 | { 2937 | "action": "upload", 2938 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2939 | "fileName": "testfile.bin", 2940 | "size": 140827, 2941 | "uploadTimestamp": 1454256286000 2942 | }, 2943 | { 2944 | "action": "upload", 2945 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2946 | "fileName": "testfile.bin", 2947 | "size": 140827, 2948 | "uploadTimestamp": 1454256286000 2949 | }, 2950 | { 2951 | "action": "upload", 2952 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2953 | "fileName": "testfile.bin", 2954 | "size": 140827, 2955 | "uploadTimestamp": 1454256286000 2956 | }, 2957 | { 2958 | "action": "upload", 2959 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2960 | "fileName": "testfile.bin", 2961 | "size": 140827, 2962 | "uploadTimestamp": 1454256286000 2963 | }, 2964 | { 2965 | "action": "upload", 2966 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2967 | "fileName": "testfile.bin", 2968 | "size": 140827, 2969 | "uploadTimestamp": 1454256286000 2970 | },{ 2971 | "action": "upload", 2972 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2973 | "fileName": "testfile.bin", 2974 | "size": 140827, 2975 | "uploadTimestamp": 1454256286000 2976 | }, 2977 | { 2978 | "action": "upload", 2979 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2980 | "fileName": "testfile.bin", 2981 | "size": 140827, 2982 | "uploadTimestamp": 1454256286000 2983 | }, 2984 | { 2985 | "action": "upload", 2986 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2987 | "fileName": "testfile.bin", 2988 | "size": 140827, 2989 | "uploadTimestamp": 1454256286000 2990 | }, 2991 | { 2992 | "action": "upload", 2993 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 2994 | "fileName": "testfile.bin", 2995 | "size": 140827, 2996 | "uploadTimestamp": 1454256286000 2997 | }, 2998 | { 2999 | "action": "upload", 3000 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3001 | "fileName": "testfile.bin", 3002 | "size": 140827, 3003 | "uploadTimestamp": 1454256286000 3004 | }, 3005 | { 3006 | "action": "upload", 3007 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3008 | "fileName": "testfile.bin", 3009 | "size": 140827, 3010 | "uploadTimestamp": 1454256286000 3011 | }, 3012 | { 3013 | "action": "upload", 3014 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3015 | "fileName": "testfile.bin", 3016 | "size": 140827, 3017 | "uploadTimestamp": 1454256286000 3018 | }, 3019 | { 3020 | "action": "upload", 3021 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3022 | "fileName": "testfile.bin", 3023 | "size": 140827, 3024 | "uploadTimestamp": 1454256286000 3025 | }, 3026 | { 3027 | "action": "upload", 3028 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3029 | "fileName": "testfile.bin", 3030 | "size": 140827, 3031 | "uploadTimestamp": 1454256286000 3032 | }, 3033 | { 3034 | "action": "upload", 3035 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3036 | "fileName": "testfile.bin", 3037 | "size": 140827, 3038 | "uploadTimestamp": 1454256286000 3039 | },{ 3040 | "action": "upload", 3041 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3042 | "fileName": "testfile.bin", 3043 | "size": 140827, 3044 | "uploadTimestamp": 1454256286000 3045 | }, 3046 | { 3047 | "action": "upload", 3048 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3049 | "fileName": "testfile.bin", 3050 | "size": 140827, 3051 | "uploadTimestamp": 1454256286000 3052 | }, 3053 | { 3054 | "action": "upload", 3055 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3056 | "fileName": "testfile.bin", 3057 | "size": 140827, 3058 | "uploadTimestamp": 1454256286000 3059 | }, 3060 | { 3061 | "action": "upload", 3062 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3063 | "fileName": "testfile.bin", 3064 | "size": 140827, 3065 | "uploadTimestamp": 1454256286000 3066 | }, 3067 | { 3068 | "action": "upload", 3069 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3070 | "fileName": "testfile.bin", 3071 | "size": 140827, 3072 | "uploadTimestamp": 1454256286000 3073 | }, 3074 | { 3075 | "action": "upload", 3076 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3077 | "fileName": "testfile.bin", 3078 | "size": 140827, 3079 | "uploadTimestamp": 1454256286000 3080 | }, 3081 | { 3082 | "action": "upload", 3083 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3084 | "fileName": "testfile.bin", 3085 | "size": 140827, 3086 | "uploadTimestamp": 1454256286000 3087 | }, 3088 | { 3089 | "action": "upload", 3090 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3091 | "fileName": "testfile.bin", 3092 | "size": 140827, 3093 | "uploadTimestamp": 1454256286000 3094 | }, 3095 | { 3096 | "action": "upload", 3097 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3098 | "fileName": "testfile.bin", 3099 | "size": 140827, 3100 | "uploadTimestamp": 1454256286000 3101 | }, 3102 | { 3103 | "action": "upload", 3104 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3105 | "fileName": "testfile.bin", 3106 | "size": 140827, 3107 | "uploadTimestamp": 1454256286000 3108 | },{ 3109 | "action": "upload", 3110 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3111 | "fileName": "testfile.bin", 3112 | "size": 140827, 3113 | "uploadTimestamp": 1454256286000 3114 | }, 3115 | { 3116 | "action": "upload", 3117 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3118 | "fileName": "testfile.bin", 3119 | "size": 140827, 3120 | "uploadTimestamp": 1454256286000 3121 | }, 3122 | { 3123 | "action": "upload", 3124 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3125 | "fileName": "testfile.bin", 3126 | "size": 140827, 3127 | "uploadTimestamp": 1454256286000 3128 | }, 3129 | { 3130 | "action": "upload", 3131 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3132 | "fileName": "testfile.bin", 3133 | "size": 140827, 3134 | "uploadTimestamp": 1454256286000 3135 | }, 3136 | { 3137 | "action": "upload", 3138 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3139 | "fileName": "testfile.bin", 3140 | "size": 140827, 3141 | "uploadTimestamp": 1454256286000 3142 | }, 3143 | { 3144 | "action": "upload", 3145 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3146 | "fileName": "testfile.bin", 3147 | "size": 140827, 3148 | "uploadTimestamp": 1454256286000 3149 | }, 3150 | { 3151 | "action": "upload", 3152 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3153 | "fileName": "testfile.bin", 3154 | "size": 140827, 3155 | "uploadTimestamp": 1454256286000 3156 | }, 3157 | { 3158 | "action": "upload", 3159 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3160 | "fileName": "testfile.bin", 3161 | "size": 140827, 3162 | "uploadTimestamp": 1454256286000 3163 | }, 3164 | { 3165 | "action": "upload", 3166 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3167 | "fileName": "testfile.bin", 3168 | "size": 140827, 3169 | "uploadTimestamp": 1454256286000 3170 | }, 3171 | { 3172 | "action": "upload", 3173 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3174 | "fileName": "testfile.bin", 3175 | "size": 140827, 3176 | "uploadTimestamp": 1454256286000 3177 | },{ 3178 | "action": "upload", 3179 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3180 | "fileName": "testfile.bin", 3181 | "size": 140827, 3182 | "uploadTimestamp": 1454256286000 3183 | }, 3184 | { 3185 | "action": "upload", 3186 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3187 | "fileName": "testfile.bin", 3188 | "size": 140827, 3189 | "uploadTimestamp": 1454256286000 3190 | }, 3191 | { 3192 | "action": "upload", 3193 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3194 | "fileName": "testfile.bin", 3195 | "size": 140827, 3196 | "uploadTimestamp": 1454256286000 3197 | }, 3198 | { 3199 | "action": "upload", 3200 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3201 | "fileName": "testfile.bin", 3202 | "size": 140827, 3203 | "uploadTimestamp": 1454256286000 3204 | }, 3205 | { 3206 | "action": "upload", 3207 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3208 | "fileName": "testfile.bin", 3209 | "size": 140827, 3210 | "uploadTimestamp": 1454256286000 3211 | }, 3212 | { 3213 | "action": "upload", 3214 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3215 | "fileName": "testfile.bin", 3216 | "size": 140827, 3217 | "uploadTimestamp": 1454256286000 3218 | }, 3219 | { 3220 | "action": "upload", 3221 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3222 | "fileName": "testfile.bin", 3223 | "size": 140827, 3224 | "uploadTimestamp": 1454256286000 3225 | }, 3226 | { 3227 | "action": "upload", 3228 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3229 | "fileName": "testfile.bin", 3230 | "size": 140827, 3231 | "uploadTimestamp": 1454256286000 3232 | }, 3233 | { 3234 | "action": "upload", 3235 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3236 | "fileName": "testfile.bin", 3237 | "size": 140827, 3238 | "uploadTimestamp": 1454256286000 3239 | }, 3240 | { 3241 | "action": "upload", 3242 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3243 | "fileName": "testfile.bin", 3244 | "size": 140827, 3245 | "uploadTimestamp": 1454256286000 3246 | },{ 3247 | "action": "upload", 3248 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3249 | "fileName": "testfile.bin", 3250 | "size": 140827, 3251 | "uploadTimestamp": 1454256286000 3252 | }, 3253 | { 3254 | "action": "upload", 3255 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3256 | "fileName": "testfile.bin", 3257 | "size": 140827, 3258 | "uploadTimestamp": 1454256286000 3259 | }, 3260 | { 3261 | "action": "upload", 3262 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3263 | "fileName": "testfile.bin", 3264 | "size": 140827, 3265 | "uploadTimestamp": 1454256286000 3266 | }, 3267 | { 3268 | "action": "upload", 3269 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3270 | "fileName": "testfile.bin", 3271 | "size": 140827, 3272 | "uploadTimestamp": 1454256286000 3273 | }, 3274 | { 3275 | "action": "upload", 3276 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3277 | "fileName": "testfile.bin", 3278 | "size": 140827, 3279 | "uploadTimestamp": 1454256286000 3280 | }, 3281 | { 3282 | "action": "upload", 3283 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3284 | "fileName": "testfile.bin", 3285 | "size": 140827, 3286 | "uploadTimestamp": 1454256286000 3287 | }, 3288 | { 3289 | "action": "upload", 3290 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3291 | "fileName": "testfile.bin", 3292 | "size": 140827, 3293 | "uploadTimestamp": 1454256286000 3294 | }, 3295 | { 3296 | "action": "upload", 3297 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3298 | "fileName": "testfile.bin", 3299 | "size": 140827, 3300 | "uploadTimestamp": 1454256286000 3301 | }, 3302 | { 3303 | "action": "upload", 3304 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3305 | "fileName": "testfile.bin", 3306 | "size": 140827, 3307 | "uploadTimestamp": 1454256286000 3308 | }, 3309 | { 3310 | "action": "upload", 3311 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3312 | "fileName": "testfile.bin", 3313 | "size": 140827, 3314 | "uploadTimestamp": 1454256286000 3315 | },{ 3316 | "action": "upload", 3317 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3318 | "fileName": "testfile.bin", 3319 | "size": 140827, 3320 | "uploadTimestamp": 1454256286000 3321 | }, 3322 | { 3323 | "action": "upload", 3324 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3325 | "fileName": "testfile.bin", 3326 | "size": 140827, 3327 | "uploadTimestamp": 1454256286000 3328 | }, 3329 | { 3330 | "action": "upload", 3331 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3332 | "fileName": "testfile.bin", 3333 | "size": 140827, 3334 | "uploadTimestamp": 1454256286000 3335 | }, 3336 | { 3337 | "action": "upload", 3338 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3339 | "fileName": "testfile.bin", 3340 | "size": 140827, 3341 | "uploadTimestamp": 1454256286000 3342 | }, 3343 | { 3344 | "action": "upload", 3345 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3346 | "fileName": "testfile.bin", 3347 | "size": 140827, 3348 | "uploadTimestamp": 1454256286000 3349 | }, 3350 | { 3351 | "action": "upload", 3352 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3353 | "fileName": "testfile.bin", 3354 | "size": 140827, 3355 | "uploadTimestamp": 1454256286000 3356 | }, 3357 | { 3358 | "action": "upload", 3359 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3360 | "fileName": "testfile.bin", 3361 | "size": 140827, 3362 | "uploadTimestamp": 1454256286000 3363 | }, 3364 | { 3365 | "action": "upload", 3366 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3367 | "fileName": "testfile.bin", 3368 | "size": 140827, 3369 | "uploadTimestamp": 1454256286000 3370 | }, 3371 | { 3372 | "action": "upload", 3373 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3374 | "fileName": "testfile.bin", 3375 | "size": 140827, 3376 | "uploadTimestamp": 1454256286000 3377 | }, 3378 | { 3379 | "action": "upload", 3380 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3381 | "fileName": "testfile.bin", 3382 | "size": 140827, 3383 | "uploadTimestamp": 1454256286000 3384 | },{ 3385 | "action": "upload", 3386 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3387 | "fileName": "testfile.bin", 3388 | "size": 140827, 3389 | "uploadTimestamp": 1454256286000 3390 | }, 3391 | { 3392 | "action": "upload", 3393 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3394 | "fileName": "testfile.bin", 3395 | "size": 140827, 3396 | "uploadTimestamp": 1454256286000 3397 | }, 3398 | { 3399 | "action": "upload", 3400 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3401 | "fileName": "testfile.bin", 3402 | "size": 140827, 3403 | "uploadTimestamp": 1454256286000 3404 | }, 3405 | { 3406 | "action": "upload", 3407 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3408 | "fileName": "testfile.bin", 3409 | "size": 140827, 3410 | "uploadTimestamp": 1454256286000 3411 | }, 3412 | { 3413 | "action": "upload", 3414 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3415 | "fileName": "testfile.bin", 3416 | "size": 140827, 3417 | "uploadTimestamp": 1454256286000 3418 | }, 3419 | { 3420 | "action": "upload", 3421 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3422 | "fileName": "testfile.bin", 3423 | "size": 140827, 3424 | "uploadTimestamp": 1454256286000 3425 | }, 3426 | { 3427 | "action": "upload", 3428 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3429 | "fileName": "testfile.bin", 3430 | "size": 140827, 3431 | "uploadTimestamp": 1454256286000 3432 | }, 3433 | { 3434 | "action": "upload", 3435 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3436 | "fileName": "testfile.bin", 3437 | "size": 140827, 3438 | "uploadTimestamp": 1454256286000 3439 | }, 3440 | { 3441 | "action": "upload", 3442 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3443 | "fileName": "testfile.bin", 3444 | "size": 140827, 3445 | "uploadTimestamp": 1454256286000 3446 | }, 3447 | { 3448 | "action": "upload", 3449 | "fileId": "4_z4c2b957661hy9c825f260e1b_f115af4dca081b246_d20160131_m160446_f001_v0011017_t0002", 3450 | "fileName": "testfile.bin", 3451 | "size": 140827, 3452 | "uploadTimestamp": 1454256286000 3453 | } 3454 | ], 3455 | "nextFileName": null 3456 | } 3457 | --------------------------------------------------------------------------------