FileOperations¶
Access via client.files. Operates on individual files by MFID.
For dataset-scoped file operations (upload, bulk download) use client.datasets.
For ingestion management use client.ingestions.
crucible.resources.files.FileOperations
¶
Operations on individual files by MFID.
Access via: client.files.get(), client.files.list(), etc.
get(file_id)
¶
Get metadata for a single file by its MFID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_id
|
str
|
File MFID |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Dict |
Dict
|
File record (mfid, filename, storage_path, storage_backend, access_note, size, sha256_hash, dataset_mfid) |
list(limit=DEFAULT_LIMIT, sha256_hash=None)
¶
List files across all accessible datasets.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
limit
|
int
|
Maximum number of results |
DEFAULT_LIMIT
|
sha256_hash
|
Optional[str]
|
Filter by SHA-256 hex digest |
None
|
Returns:
| Type | Description |
|---|---|
List[Dict]
|
List[Dict]: File records (mfid, filename, storage_path, storage_backend, access_note, size, sha256_hash, dataset_mfid) |
download(file_id, output_dir='.')
¶
Download a single file by MFID to a local directory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_id
|
str
|
File MFID |
required |
output_dir
|
str
|
Directory to save the file (default: current directory) |
'.'
|
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Path of the downloaded file |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If the file has not been ingested yet, or if it's not stored on GCS (Crucible cannot fetch it directly in that case). |
get_download_link(file_id)
¶
Get a signed download URL for a single file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_id
|
str
|
File MFID |
required |
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Signed URL valid for 1 hour, no auth required. |
Raises:
| Type | Description |
|---|---|
HTTPError 404
|
File has not been ingested yet. |
request_ingestion(file_id, ingestion_class=None, wait_for_response=False)
¶
Request ingestion of an uploaded file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_id
|
str
|
File MFID |
required |
ingestion_class
|
Optional[str]
|
Ingestion class for the worker (e.g. 'lammps', 'nexus'). Defaults to the server-side default if omitted. |
None
|
wait_for_response
|
bool
|
Block until ingestion completes. |
False
|
Returns:
| Name | Type | Description |
|---|---|---|
Dict |
Dict
|
IngestionRequest record (id, status, ...) |