Parallel storage and multipart upload.
最初に以下の最小例でモジュール利用方法を確認し、その後 API リファレンスを参照してください。
from nexom.app.parallel_storage import ParallelStorage
ps = ParallelStorage(
db_file='data/db/storage.db',
contents_dir='data/contents',
working_dir='data/work',
)
meta = ps.getMeta(public_id='PUBLIC_ID')
分類: internal function
_FileStatusTypesCheck(status: FileStatus) -> None
実装コード由来のAPIです。
status / kind=positional-or-keyword / type=FileStatus / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import _FileStatusTypesCheck
result = _FileStatusTypesCheck(status=...)
print(result)
分類: internal function
_rand(nbytes: int = 24) -> str
実装コード由来のAPIです。
nbytes / kind=positional-or-keyword / type=int / 任意 / default=24str
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import _rand
result = _rand(nbytes=24)
print(result)
分類: internal function
_sha256_hex_file(path: Path) -> str
実装コード由来のAPIです。
path / kind=positional-or-keyword / type=Path / 必須 / default=なしstr
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import _sha256_hex_file
result = _sha256_hex_file(path="/path/to/value")
print(result)
分類: internal function
_detect_file_type(path: Path, filename: str) -> FileTypes
Detect a FileTypes value from content and filename. Priority: - image content -> Images - media mime (audio/video) -> Media - document mime (text/application) -> Documents - dangerous extensions -> Dangerous - fallback -> Binary
path / kind=positional-or-keyword / type=Path / 必須 / default=なしfilename / kind=positional-or-keyword / type=str / 必須 / default=なしFileTypes
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import _detect_file_type
result = _detect_file_type(path="/path/to/value", filename="sample")
print(result)
分類: public function
format_psc_filename(contents_id: str, suffix: str, **kwargs) -> str
Build a PSC filename for X-Accel-Redirect. Format: <contents_id>__PSC_arg1-000_arg2-111<suffix> kwargs are sorted alphabetically by key.
contents_id / kind=positional-or-keyword / type=str / 必須 / default=なしsuffix / kind=positional-or-keyword / type=str / 必須 / default=なしkwargs / kind=variadic-keyword(**kwargs) / type=型指定なし / 必須 / default=なしstr
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import format_psc_filename
result = format_psc_filename(contents_id="sample", suffix="sample")
print(result)
分類: public class
Immutable metadata for a stored file.
分類: public method
isTypes(self, types: FileTypes) -> bool
Return True if the stored type matches the given FileTypes value.
types / kind=positional-or-keyword / type=FileTypes / 必須 / default=なしbool
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import FileMeta
obj = FileMeta(...)
result = obj.isTypes(types=...)
print(result)
分類: public class
Convenience wrapper around ParallelStorageDBM for public APIs. Provides PSC path formatting, status updates, and image compression helpers.
分類: special method
__init__(self, db_file: str, contents_dir: str, working_dir: str | None = None) -> None
メソッドドキュメントは未定義です。
db_file / kind=positional-or-keyword / type=str / 必須 / default=なしcontents_dir / kind=positional-or-keyword / type=str / 必須 / default=なしworking_dir / kind=positional-or-keyword / type=str | None / 任意 / default=NoneNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(db_file="sample", contents_dir="sample", working_dir=None)
分類: public method
format_psc_public_id(self, public_id: str, **kwargs) -> Path
Return the resolved PSC file path for a public_id. kwargs are embedded in the PSC filename format.
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしkwargs / kind=variadic-keyword(**kwargs) / type=型指定なし / 必須 / default=なしPath
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(...)
result = obj.format_psc_public_id(public_id="sample")
print(result)
分類: public method
comp_img(self, public_id: str, width: int | None, height: int | None, quality: int | None) -> Path
Generate a WebP image variant and return its path. The source must be an image, and output is saved under contents_dir.
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしwidth / kind=positional-or-keyword / type=int | None / 必須 / default=なしheight / kind=positional-or-keyword / type=int | None / 必須 / default=なしquality / kind=positional-or-keyword / type=int | None / 必須 / default=なしPath
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(...)
result = obj.comp_img(public_id="sample", width=1, height=1, quality=1)
print(result)
分類: public method
update_suffix(self, public_id: str, suffix: str) -> None
Update stored file suffix for a public_id.
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしsuffix / kind=positional-or-keyword / type=str / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(...)
result = obj.update_suffix(public_id="sample", suffix="sample")
print(result)
分類: public method
update_status(self, public_id: str, status: FileStatus) -> None
Update stored status for a public_id.
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしstatus / kind=positional-or-keyword / type=FileStatus / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(...)
result = obj.update_status(public_id="sample", status=...)
print(result)
分類: public method
getMeta(self, public_id: str) -> FileMeta
Get FileMeta
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしFileMeta
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(...)
result = obj.getMeta(public_id="sample")
print(result)
分類: public method
delete(self, pid: str, public_id: str, *, force: bool = False) -> None
Delete a content record and related files. Targets: - DB record in parallel_storage - content files in contents_dir matching "<contents_id>__PSC_*" - worker directory "<working_dir>/<public_id>" when working_dir is configured
pid / kind=positional-or-keyword / type=str / 必須 / default=なしpublic_id / kind=positional-or-keyword / type=str / 必須 / default=なしforce / kind=keyword-only / type=bool / 任意 / default=FalseNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorage
obj = ParallelStorage(...)
result = obj.delete(pid="sample", public_id="sample", force=False)
print(result)
分類: public class
Database manager for the parallel_storage table.
分類: special method
__init__(self, db_file: str)
メソッドドキュメントは未定義です。
db_file / kind=positional-or-keyword / type=str / 必須 / default=なし型指定なし
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(db_file="sample")
分類: internal method
_init(self)
Create storage table if it does not exist.
型指定なし
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj._init()
print(result)
分類: internal method
_insert(self, *, contents_id: str, public_id: str, size: int, pid: str, filename: str, suffix: str, permission_id: str | None)
Insert a new storage record.
contents_id / kind=keyword-only / type=str / 必須 / default=なしpublic_id / kind=keyword-only / type=str / 必須 / default=なしsize / kind=keyword-only / type=int / 必須 / default=なしpid / kind=keyword-only / type=str / 必須 / default=なしfilename / kind=keyword-only / type=str / 必須 / default=なしsuffix / kind=keyword-only / type=str / 必須 / default=なしpermission_id / kind=keyword-only / type=str | None / 必須 / default=なし型指定なし
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj._insert(contents_id="sample", public_id="sample", size=1, pid="sample", filename="sample", suffix="sample", permission_id="sample")
print(result)
分類: internal method
_get_by_public_id(self, public_id: str) -> tuple
Fetch record by public_id or raise.
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしtuple
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj._get_by_public_id(public_id="sample")
print(result)
分類: internal method
_get_by_contents_id(self, contents_id: str) -> tuple
Fetch record by contents_id or raise.
contents_id / kind=positional-or-keyword / type=str / 必須 / default=なしtuple
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj._get_by_contents_id(contents_id="sample")
print(result)
分類: public method
register(self, filename: str, suffix: str, size: int, pid: str, permission_id: str | None = None) -> str
Insert a new record and return public_id.
filename / kind=positional-or-keyword / type=str / 必須 / default=なしsuffix / kind=positional-or-keyword / type=str / 必須 / default=なしsize / kind=positional-or-keyword / type=int / 必須 / default=なしpid / kind=positional-or-keyword / type=str / 必須 / default=なしpermission_id / kind=positional-or-keyword / type=str | None / 任意 / default=Nonestr
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.register(filename="sample", suffix="sample", size=1, pid="sample", permission_id=None)
print(result)
分類: public method
status_change(self, contents_id: str, status: FileStatus) -> None
Update status for contents_id.
contents_id / kind=positional-or-keyword / type=str / 必須 / default=なしstatus / kind=positional-or-keyword / type=FileStatus / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.status_change(contents_id="sample", status=...)
print(result)
分類: public method
update_public_id(self, contents_id: str) -> None
Regenerate public_id for contents_id.
contents_id / kind=positional-or-keyword / type=str / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.update_public_id(contents_id="sample")
print(result)
分類: public method
update_types(self, contents_id: str, types: FileTypes) -> None
Update file type for contents_id.
contents_id / kind=positional-or-keyword / type=str / 必須 / default=なしtypes / kind=positional-or-keyword / type=FileTypes / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.update_types(contents_id="sample", types=...)
print(result)
分類: public method
update_suffix(self, contents_id: str, suffix: str) -> None
Update suffix for contents_id.
contents_id / kind=positional-or-keyword / type=str / 必須 / default=なしsuffix / kind=positional-or-keyword / type=str / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.update_suffix(contents_id="sample", suffix="sample")
print(result)
分類: public method
remove(self, pid: str | None, *, contents_id: str | None = None, public_id: str | None = None) -> None
Delete a record by contents_id or public_id.
pid / kind=positional-or-keyword / type=str | None / 必須 / default=なしcontents_id / kind=keyword-only / type=str | None / 任意 / default=Nonepublic_id / kind=keyword-only / type=str | None / 任意 / default=NoneNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.remove(pid="sample", contents_id=None, public_id=None)
print(result)
分類: public method
getMeta(self, *, contents_id: str | None = None, public_id: str | None = None) -> FileMeta
Return FileMeta for contents_id or public_id.
contents_id / kind=keyword-only / type=str | None / 任意 / default=Nonepublic_id / kind=keyword-only / type=str | None / 任意 / default=NoneFileMeta
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.getMeta(contents_id=None, public_id=None)
print(result)
分類: public method
commit(self) -> None
メソッドドキュメントは未定義です。
None
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import ParallelStorageDBM
obj = ParallelStorageDBM(...)
result = obj.commit()
print(result)
分類: public class
Metadata for a multipart upload session.
分類: public method
toJson(self) -> str
Serialize to JSON string.
str
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import UploadMeta
obj = UploadMeta(...)
result = obj.toJson()
print(result)
分類: public method
readJson(path: Path) -> 'UploadMeta'
Read UploadMeta from a JSON file.
path / kind=positional-or-keyword / type=Path / 必須 / default=なし'UploadMeta'
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import UploadMeta
obj = UploadMeta(...)
result = obj.readJson(path="/path/to/value")
print(result)
分類: public class
Multipart upload workflow with chunk verification and commit. Uses ParallelStorageDBM for metadata and stores chunks under working_root.
分類: special method
__init__(self, db_file: str, working_dir: str, contents_dir: str)
メソッドドキュメントは未定義です。
db_file / kind=positional-or-keyword / type=str / 必須 / default=なしworking_dir / kind=positional-or-keyword / type=str / 必須 / default=なしcontents_dir / kind=positional-or-keyword / type=str / 必須 / default=なし型指定なし
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import MultiPartUploader
obj = MultiPartUploader(db_file="sample", working_dir="sample", contents_dir="sample")
分類: internal method
_getUploadMeta(self, public_id: str) -> UploadMeta
Load UploadMeta for a public_id.
public_id / kind=positional-or-keyword / type=str / 必須 / default=なしUploadMeta
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import MultiPartUploader
obj = MultiPartUploader(...)
result = obj._getUploadMeta(public_id="sample")
print(result)
分類: internal method
_failed(self, pid: str, public_id: str) -> None
Cleanup a failed upload.
pid / kind=positional-or-keyword / type=str / 必須 / default=なしpublic_id / kind=positional-or-keyword / type=str / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import MultiPartUploader
obj = MultiPartUploader(...)
result = obj._failed(pid="sample", public_id="sample")
print(result)
分類: public method
register(self, filename: str, size: int, pid: str, permission_id: str | None, total_chunks: int, sha256: str) -> str
Register an upload and return public_id.
filename / kind=positional-or-keyword / type=str / 必須 / default=なしsize / kind=positional-or-keyword / type=int / 必須 / default=なしpid / kind=positional-or-keyword / type=str / 必須 / default=なしpermission_id / kind=positional-or-keyword / type=str | None / 必須 / default=なしtotal_chunks / kind=positional-or-keyword / type=int / 必須 / default=なしsha256 / kind=positional-or-keyword / type=str / 必須 / default=なしstr
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import MultiPartUploader
obj = MultiPartUploader(...)
result = obj.register(filename="sample", size=1, pid="sample", permission_id="sample", total_chunks=1, sha256="sample")
print(result)
分類: public method
parts_upload(self, pid: str, public_id: str, count: int, blob: bytes, sha256: str) -> None
Upload a single chunk and verify its checksum.
pid / kind=positional-or-keyword / type=str / 必須 / default=なしpublic_id / kind=positional-or-keyword / type=str / 必須 / default=なしcount / kind=positional-or-keyword / type=int / 必須 / default=なしblob / kind=positional-or-keyword / type=bytes / 必須 / default=なしsha256 / kind=positional-or-keyword / type=str / 必須 / default=なしNone
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import MultiPartUploader
obj = MultiPartUploader(...)
result = obj.parts_upload(pid="sample", public_id="sample", count=1, blob=..., sha256="sample")
print(result)
分類: public method
commit(self, pid: str, public_id: str) -> FileMeta
Assemble chunks, validate checksum/size, and move to contents.
pid / kind=positional-or-keyword / type=str / 必須 / default=なしpublic_id / kind=positional-or-keyword / type=str / 必須 / default=なしFileMeta
実装コード内の例外仕様を確認してください。
from nexom.app.parallel_storage import MultiPartUploader
obj = MultiPartUploader(...)
result = obj.commit(pid="sample", public_id="sample")
print(result)
nexom.app.parallel_storageservices/venv/lib/python3.10/site-packages/nexom/app/parallel_storage.py2026-03-14