> ## Documentation Index
> Fetch the complete documentation index at: https://docs.outerproduct.com/llms.txt
> Use this file to discover all available pages before exploring further.

# VolumeHandle

> A volume resource and its authorized object-store operations.

```python theme={null}
class VolumeHandle
```

```python theme={null}
VolumeHandle(resource: _volume.Volume, client: _control_plane.OuterProductClient)
```

```python theme={null}
name: str
description: str
created_by: str | None
updated_by: str | None
provider: _volume.VolumeProvider | None
created_at: float | None
updated_at: float | None
```

## `put`

<sub>method</sub>

```python theme={null}
def put(
    path: str,
    file: PutSource,
    *,
    attributes: Attributes | Mapping[str, str] | None = None,
    tags: Mapping[str, str] | None = None,
    mode: PutMode | None = None,
    use_multipart: bool | None = None,
    chunk_size: int = 5 * 1024 * 1024,
    max_concurrency: int = 12,
) -> PutResult
```

Store bytes at a relative object path.

## `get`

<sub>method</sub>

```python theme={null}
def get(
    path: str,
    *,
    options: GetOptions | None = None,
) -> GetResult
```

Return a streaming result for one object.

## `get_range`

<sub>method</sub>

```python theme={null}
def get_range(
    path: str,
    *,
    start: int,
    end: int | None = None,
    length: int | None = None,
) -> Bytes
```

Return one byte range from an object.

## `get_ranges`

<sub>method</sub>

```python theme={null}
def get_ranges(
    path: str,
    *,
    starts: Sequence[int],
    ends: Sequence[int] | None = None,
    lengths: Sequence[int] | None = None,
    coalesce: int = 1024 * 1024,
) -> builtins.list[Bytes]
```

Return multiple byte ranges from an object.

## `head`

<sub>method</sub>

```python theme={null}
def head(path: str) -> ObjectMeta
```

Return metadata for one object without reading its body.

## `list`

<sub>method</sub>

```python theme={null}
async def list(
    prefix: str | None = None,
    *,
    offset: str | None = None,
    chunk_size: int = 50,
    return_arrow: bool = False,
) -> AsyncIterator[object]
```

Stream batches of metadata for objects matching a prefix.

## `list_with_delimiter`

<sub>method</sub>

```python theme={null}
def list_with_delimiter(
    prefix: str | None = None,
    *,
    return_arrow: bool = False,
) -> ListResult[object]
```

List immediate objects and common prefixes.

## `copy`

<sub>method</sub>

```python theme={null}
def copy(
    from_: str,
    to: str,
    *,
    overwrite: bool = True,
) -> None
```

Copy an object within this volume.

## `rename`

<sub>method</sub>

```python theme={null}
def rename(
    from_: str,
    to: str,
    *,
    overwrite: bool = True,
) -> None
```

Move an object within this volume; this may not be atomic.

## `delete`

<sub>method</sub>

```python theme={null}
def delete(paths: str | Sequence[str]) -> None
```

Delete one or more objects.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.