Example #1
0
            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);
Example #2
0
$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);
}
Example #3
0
 /**
  * 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);
 }
Example #4
0
    $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);