1. Go to this page and download the library: Download caseyamcl/wosclient library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
caseyamcl / wosclient example snippets
// Get an object by its Object ID (OID)
$wosObject = $wosClient->getObject('abcdef-ghijkl-mnopqr-12345');
// Get a range of data for a large object (get bytes 50000-100000)
$partialWosObject = $wosClient->getObject('abcdef-ghijkl-mnopqr-12345', '50000-100000');
// Get metadata for an Object ID (OID)
$wosMetadata = $wosClient->getMetadata('abcdef-ghijkl-mnopqr-12345');
// Put an object
$wosObjectId = $wosClient->putObject('some-serializable-or-streamable-data', ['some' => 'metadata']);
// Reserve an Object ID, without putting any data in it yet
$wosObjectId = $wosClient->reserveObject();
// Put an object having reserved its ID ahead of time with reserveObject()
$wosObjectId = $wosClient->putObject('some-serializable-or-streamable-data', [], $reservedObjectId);
// Delete an object
$wosClient->deleteObject('abcdef-ghijkl-mnopqr-12345');
// Get the object
$wosObject = $wosClient->getObject('abcdef-ghijkl-mnopqr-12345');
// Get the data from the response as a string
$wosObject->getData()->__toString();
// or, as a shortcut..
$wosObject->__toString();
// Get the Object ID
$wosObject->getId();
// Get the meta-data (instance of WosObjectMetadata; see below)
$metadata = $wosObject->getMetadata();
// Get access to the HTTP response
$wosObject->getHttpResponse();
// Get the metadata from the object
$wosObject = $wosClient->getObject('abcdef-ghijkl-mnopqr-12345');
$metadata = $wosObject->getMetadata();
// ..or just get the metadata for the object from the WOS server without
// getting the content
$metadata = $wosClient->getMetadata('abcdef-ghijkl-mnopqr-12345');
// Get the object ID
$objectId = $metadata->getObjectId();
// Get the object size in bytes - This returns NULL if not known
$numBytes = $metadata->getObjectSize();
// Access custom metadata (having been added with `WosObject::putMetadata()`
$foo = $metadata->get('foo');
// Conditionally get metadat if it exists
if ($metadata->has('bar')) {
$bar = $metadata->get('bar');
}
// Metadata implements \Countable, \ArrayAccess, and \Traversable
$foo = $metadata['foo'];
$bar = $metadata['bar'];
$num = count($metadata);
for ($metadata as $key => $val) {
echo "$key: $val";
}
// Put an object with auto-generated ID
$wosObjectId = $wosClient->putObject('some object data');
// Reserve an object ID
$wosObjectId = $wosClient->reserveObject();
// Get the ID as a string
$idString = $wosObjectId->getId();
// ..or cast as string..
$idString = (string) $wosObjectId;
$veryLargeWosObject = $wosClient->getObject('abcdef-ghijkl-mnopqr-12345');
$dataStream = $veryLargeWosObject->getData();
// Read the data stream 1024 bytes at a time, and
// echo the data out.. You could do anything with the chunked data if
// you wish...
while ( ! $dataStream->eof()) {
echo $dataStream->read(1024);
}
$metadata = $wosClient->getMetadata('abcdef-ghijkl-mnopqr-12345');
$chunkSize = 1024; // read this many bytes at a time
for ($i = 0; $i < $metadata->getLength(); $i+= $chunkSize) {
$from = $i;
$to = $i + $chunkSize;
// WosClient::getObject second parameter accepts range in the format '####-####' (e.g. '1024-2048')
echo $wosClient->getObject('abcdef-ghijkl-mnopqr-12345', $from . '- . $to)->__toString();
}
use WosClient\Exception\WosServerException;
use WosClient\Exception\WosRequestException;
use GuzzleHttp\Exception\GuzzleException;
try {
$wosClient->getObject('does-not-exist');
}
catch (WosServerException $e) {
// WOS Exception thrown by the WOS Client
echo 'WOS Error: ' . $e->getMessage();
}
catch (WosRequestException $e) {
// Some other application exception occurred, such as
// the WOS server returned a response that is missing an
// expected header (this really should never happen)
echo 'Something strange happened: ' . $e->getMessage();
}
catch (GuzzleException $e) {
// HTTP Exception thrown by Guzzle
echo 'HTTP Error: ' . $e->getMessage();
}
use WosClient\WosClient;
use GuzzleHttp\Client as GuzzleClient;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
// Setup custom Guzzle client
$guzzleClient = new GuzzleClient([
'base_uri' => 'http://mywos.example.org/',
'connect_timeout' => 60,
'handler' => HandlerStack::create(new CurlHandler()),
'headers' => [
'x-ddn-policy' => 'my-policy'
],
/** ..other guzzle options here.. */
]);
// Instantiate a new WOS Client
$wosClient = new WosClient($guzzleClient);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.