* "testLibPassword": "******" * } */ $cfgFile = getenv("HOME") . "/.seafile-php-sdk/cfg.json"; if (!is_readable($tokenFile)) { throw new Exception($tokenFile . ' is not readable or does not exist.'); } if (!is_readable($cfgFile)) { throw new Exception($cfgFile . ' is not readable or does not exist.'); } $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); // get all libraries available $logger->log(Logger::INFO, "#################### Getting all libraries"); $libs = $libraryResource->getAll(); foreach ($libs as $lib) { printf("Name: %s, ID: %s, is encrypted: %s\n", $lib->name, $lib->id, $lib->encrypted ? 'YES' : 'NO'); } $libId = $cfg->testLibId; // get specific library $logger->log(Logger::INFO, "#################### Getting lib with ID " . $libId); $lib = $libraryResource->getById($libId); $lib->password = $cfg->testLibPassword; // library is encrypted and thus we provide a password if ($lib->encrypted) { $success = $libraryResource->decrypt($libId, ['query' => ['password' => $cfg->testLibPassword]]); $logger->log(Logger::INFO, "#################### Decrypting library " . $libId . ' was ' . ($success ? '' : 'un') . 'successful');
/** * Test create() with valid DirectoryItem * * @return void */ public function testCreate() { $clientMock = $this->getMockedClient(new Response(201, ['Content-Type' => 'application/json'], 'success')); $clientMock->expects(self::any())->method('request')->with(self::equalTo('POST'), 'http://example.com/index.html/repos/123/file/?p=/some_name.txt')->will(self::returnValue(new Response(201, ['Content-Type' => 'application/json'], 'success'))); $fileResource = new File($clientMock); $lib = new Library(); $lib->id = 123; $dirItem = new DirectoryItem(); $dirItem->path = '/'; $dirItem->name = 'some_name.txt'; self::assertTrue($fileResource->create($lib, $dirItem)); }
* {"token": "your_token"} */ $tokenFile = getenv("HOME") . "/.seafile-php-sdk/api-token.json"; $cfgFile = getenv("HOME") . "/.seafile-php-sdk/cfg.json"; if (!is_readable($tokenFile)) { throw new Exception($tokenFile . ' is not readable or does not exist.'); } if (!is_readable($cfgFile)) { throw new Exception($cfgFile . ' is not readable or does not exist.'); } $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 {
* "baseUri": "https://your.seafile-server.example.com", * "testLibId": "ID of an encrypted library", * "testLibPassword": "******" * } */ $cfgFile = getenv("HOME") . "/.seafile-php-sdk/cfg.json"; if (!is_readable($tokenFile)) { throw new Exception($tokenFile . ' is not readable or does not exist.'); } if (!is_readable($cfgFile)) { throw new Exception($cfgFile . ' is not readable or does not exist.'); } $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); $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, "#################### Create empty file on Seafile server."); $dirItem = (new DirectoryItem())->fromArray(['path' => '/', 'name' => uniqid('some_name_', true) . '.txt']); $success = $fileResource->create($lib, $dirItem); if ($success === true) { $logger->log(Logger::INFO, "#################### File created: " . $dirItem->name); } else { $logger->log(Logger::ERROR, "#################### File created: " . $dirItem->name); } print PHP_EOL . 'Done' . PHP_EOL;
* "testLibPassword": "******" * } */ $cfgFile = getenv("HOME") . "/.seafile-php-sdk/cfg.json"; if (!is_readable($tokenFile)) { throw new Exception($tokenFile . ' is not readable or does not exist.'); } if (!is_readable($cfgFile)) { throw new Exception($cfgFile . ' is not readable or does not exist.'); } $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); $sharedLinkResource = new SharedLink($client); // get all libraries available $logger->log(Logger::INFO, "#################### Getting all libraries"); $libs = $libraryResource->getAll(); foreach ($libs as $lib) { printf("Name: %s, ID: %s, is encrypted: %s\n", $lib->name, $lib->id, $lib->encrypted ? 'YES' : 'NO'); } $libId = $cfg->testLibId; // get specific library $logger->log(Logger::INFO, "#################### Getting lib with ID " . $libId); $lib = $libraryResource->getById($libId); $lib->password = $cfg->testLibPassword; // library is encrypted and thus we provide a password $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).
* "testLibId": "ID of an encrypted library", * "testLibPassword": "******" * } */ $cfgFile = getenv("HOME") . "/.seafile-php-sdk/cfg.json"; if (!is_readable($tokenFile)) { throw new Exception($tokenFile . ' is not readable or does not exist.'); } if (!is_readable($cfgFile)) { throw new Exception($cfgFile . ' is not readable or does not exist.'); } $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); $fileResource = new File($client); $libId = $cfg->testLibId; // get specific library $logger->log(Logger::INFO, "#################### Getting lib with ID " . $libId); $lib = $libraryResource->getById($libId); if ($lib->encrypted === true && isset($cfg->testLibPassword)) { $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