break; default: $logger->log(Logger::INFO, "#################### Not downloading '" . $items[0]->name . "' because it's not a file."); break; } } // upload a Hello World file and random file name (note: this seems not to work at this time when you are not logged into the Seafile web frontend). $newFilename = tempnam('.', 'Seafile-PHP-SDK_Test_Upload_'); rename($newFilename, $newFilename . '.txt'); $newFilename .= '.txt'; file_put_contents($newFilename, 'Hello World: ' . date('Y-m-d H:i:s')); $logger->log(Logger::INFO, "#################### Uploading file " . $newFilename); $response = $fileResource->upload($lib, $newFilename, '/'); // get file info $logger->log(Logger::INFO, "#################### Getting file details on " . $newFilename); $result = $fileResource->getFileDetail($lib, '/' . basename($newFilename)); // Update file $logger->log(Logger::INFO, "#################### Power napping 10s before updating the file..."); sleep(10); file_put_contents($newFilename, ' - UPDATED!', FILE_APPEND); $response = $fileResource->update($lib, $newFilename, '/'); $result = unlink($newFilename); // Create dir structure $logger->log(Logger::INFO, "#################### Recursively create directory structure..."); $parentDir = '/'; // Create directory within this folder $directory = 'a/b/c/d/e/f/g/h/i'; // directory structure $recursive = true; // recursive will create parentDir if not already existing $success = $directoryResource->create($lib, $directory, $parentDir, $recursive);
$token = json_decode(file_get_contents($tokenFile)); $cfg = json_decode(file_get_contents($cfgFile)); $client = new Client(['base_uri' => $cfg->baseUri, 'debug' => true, 'handler' => $stack, 'headers' => ['Content-Type' => 'application/json', 'Authorization' => 'Token ' . $token->token]]); $libraryResource = new Library($client); $directoryResource = new Directory($client); $fileResource = new File($client); $libId = $cfg->testLibId; $lib = $libraryResource->getById($libId); if ($lib->encrypted === true && isset($cfg->testLibPassword)) { $success = $libraryResource->decrypt($libId, ['query' => ['password' => $cfg->testLibPassword]]); } $logger->log(Logger::INFO, "#################### GO!"); $path = null; $fileName = 'test.txt'; $newFilename = 'test_' . date('U') . '.txt'; $dirItem = $fileResource->getFileDetail($lib, $path . $fileName); $logger->log(Logger::INFO, "#################### File to be renamed: " . $path . $dirItem->name); $success = $fileResource->rename($lib, $dirItem, $newFilename); if ($success) { $logger->log(Logger::INFO, "#################### File renamed from " . $path . $fileName . ' to ' . $newFilename); } else { $logger->log(Logger::ERROR, "#################### Could not rename: " . $path . $fileName); } sleep(60); $newFilename = 'even_newer_file_name_test_' . date('U') . '.txt'; $success = $fileResource->rename($lib, $dirItem, $newFilename); if ($success) { $logger->log(Logger::INFO, "#################### File renamed from " . $dirItem->name . ' to ' . $newFilename); } else { $logger->log(Logger::ERROR, "#################### Could not rename: " . $dirItem->name); }
/** * test getFileDetail() * * @return void */ public function testGetFileDetail() { $fileResource = new File($this->getMockedClient(new Response(200, ['Content-Type' => 'application/json'], '{"id": "cd8ec413c72388149911c84b046642da2ca4b935", "mtime": 1444760758, "type": "file", ' . '"name": "Seafile-PHP-SDK_Test_Upload_jt64pq.txt", "size": 32}'))); $response = $fileResource->getFileDetail(new Library(), '/Seafile-PHP-SDK_Test_Upload_jt64pq.txt'); self::assertInstanceOf('Seafile\\Client\\Type\\DirectoryItem', $response); self::assertInstanceOf('DateTime', $response->mtime); self::assertSame('Seafile-PHP-SDK_Test_Upload_jt64pq.txt', $response->name); self::assertSame('file', $response->type); self::assertequals('32', $response->size); }
$success = $libraryResource->decrypt($libId, ['query' => ['password' => $cfg->testLibPassword]]); } // upload a Hello World file and random file name (note: this seems not to work at this time when you are not logged into the Seafile web frontend). $newFilename = tempnam('.', 'Seafile-PHP-SDK_Test_File_History_Upload_'); rename($newFilename, $newFilename . '.txt'); $newFilename .= '.txt'; file_put_contents($newFilename, 'Hello World: ' . date('Y-m-d H:i:s')); $logger->log(Logger::INFO, "#################### Uploading file " . $newFilename); $response = $fileResource->upload($lib, $newFilename, '/'); // Update file $logger->log(Logger::INFO, "#################### Updating file " . $newFilename); file_put_contents($newFilename, ' - UPDATED!', FILE_APPEND); $response = $fileResource->update($lib, $newFilename, '/'); // Get file detail $logger->log(Logger::INFO, "#################### Getting file detail of " . $newFilename); $dirItem = $fileResource->getFileDetail($lib, basename($newFilename)); if ($dirItem->path === null) { $dirItem->path = '/'; } // Get file history $logger->log(Logger::INFO, "#################### Getting file history of " . $newFilename); $fileHistoryItems = $fileResource->getHistory($lib, $dirItem); $logger->log(Logger::INFO, "#################### Listing file history of " . $newFilename); foreach ($fileHistoryItems as $fileHistoryItem) { $logger->log(Logger::INFO, sprintf("%s at %s", $fileHistoryItem->desc, $fileHistoryItem->ctime->format('Y-m-d H:i:s'))); } $firstFileRevision = array_slice($fileHistoryItems, -1)[0]; $localFilePath = '/tmp/yo.txt'; $response = $fileResource->downloadRevision($lib, $dirItem, $firstFileRevision, $localFilePath); if ($response->getStatusCode() == 200) { $logger->log(Logger::INFO, "#### First file revision of " . $dirItem->name . " downloaded to " . $localFilePath);