Download the PHP package suicore/walrus-sdk-php without Composer
On this page you can find all versions of the php package suicore/walrus-sdk-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download suicore/walrus-sdk-php
More information about suicore/walrus-sdk-php
Files in suicore/walrus-sdk-php
Package walrus-sdk-php
Short Description A PHP wrapper of Walrus
License MIT
Homepage https://github.com/suicore/walrus-sdk-php
Informations about the package walrus-sdk-php
Walrus PHP SDK
The Walrus PHP SDK provides a convenient, strongly-typed interface for interacting with the Walrus HTTP APIs. It supports storing and retrieving blobs and quilts via the publisher and aggregator endpoints of the Walrus service, leveraging Guzzle HTTP for robust HTTP communication.
Features
- Store Blobs: Upload data (or files) as blobs with configurable storage epochs, send-to address, and deletability options.
- Retrieve Blobs: Easily retrieve blob content using a unique blob ID.
- Strongly Typed Responses: Work with dedicated response classes such as
StoreBlobResponse,NewlyCreatedResponse, andAlreadyCertifiedResponse.
Installation
Install via Composer:
Usage
Here’s a basic example of how to use the SDK:
Uploading Files
To upload a blob, simply pass the file path to the storeBlob method and set the $isFile parameter to true:
Uploading a file in a quilt
The SDK supports uploading multiple files as a single quilt using the storeQuilt method. Each file can be associated with custom metadata.
Retrieving a Quilt Patch or Quilt by name
Encryption
The Walrus SDK provides a simple, but secure way to encrypt and decrypt data using the Aes256Encryptor class. Here’s an example:
A key length of 32 bytes is required for AES-256 encryption. Shorter or longer keys will work, but will be more unpredictable and less secure.
API Methods
storeBlob
Stores a blob using the publisher API.
Parameters:
string dataOrPath: The blob data or file path.StoreBlobOrQuiltOptions $options: Options such as epochs, sendObjectTo address, and deletability.bool $isFile: Set to true if $dataOrPath is a file path.- Returns: A StoreBlobResponse object representing the response from the API.
getBlob
Retrieves a blob from the aggregator API.
Parameters:
string $blobId: The unique blob identifier.- Returns: The blob content as a string.
storeQuilt
Stores multiple files as a quilt with optional metadata.
Parameters:
QuiltFile[] $files: An array of QuiltFile objects containing identifier and file source.StoreBlobOrQuiltOptions $options: Storage options.QuiltMetadata[] $metadata: (Optional) Metadata associated with each file.- Returns: StoreQuiltResponse
getQuilt
Retrieves quilt content from the aggregator.
Parameters:
string $blobOrPatchId: A blob ID (for full quilt) or a patch ID (for specific patch).string|null $filename: Optional filename to extract a specific file from the quilt.- Returns: File contents as a string.
Testing
To run the test suite, use the following commands:
Unit Tests
Include Integration Tests
Contributing
Contributions are welcome! For major changes, please open an issue first to discuss what you would like to change.
License
This project is licensed under the MIT License. See the LICENSE file for details.