mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-19 01:10:28 +00:00
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
|
|
def upload_immutable(storage_server, storage_index, renew_secret, cancel_secret, shares):
|
|
"""
|
|
Synchronously upload some immutable shares to a ``StorageServer``.
|
|
|
|
:param allmydata.storage.server.StorageServer storage_server: The storage
|
|
server object to use to perform the upload.
|
|
|
|
:param bytes storage_index: The storage index for the immutable shares.
|
|
|
|
:param bytes renew_secret: The renew secret for the implicitly created lease.
|
|
:param bytes cancel_secret: The cancel secret for the implicitly created lease.
|
|
|
|
:param dict[int, bytes] shares: A mapping from share numbers to share data
|
|
to upload. The data for all shares must be of the same length.
|
|
|
|
:return: ``None``
|
|
"""
|
|
already, writers = storage_server.allocate_buckets(
|
|
storage_index,
|
|
renew_secret,
|
|
cancel_secret,
|
|
shares.keys(),
|
|
len(next(iter(shares.values()))),
|
|
)
|
|
for shnum, writer in writers.items():
|
|
writer.write(0, shares[shnum])
|
|
writer.close()
|
|
|
|
|
|
def upload_mutable(storage_server, storage_index, secrets, shares):
|
|
"""
|
|
Synchronously upload some mutable shares to a ``StorageServer``.
|
|
|
|
:param allmydata.storage.server.StorageServer storage_server: The storage
|
|
server object to use to perform the upload.
|
|
|
|
:param bytes storage_index: The storage index for the immutable shares.
|
|
|
|
:param secrets: A three-tuple of a write enabler, renew secret, and cancel
|
|
secret.
|
|
|
|
:param dict[int, bytes] shares: A mapping from share numbers to share data
|
|
to upload.
|
|
|
|
:return: ``None``
|
|
"""
|
|
test_and_write_vectors = {
|
|
sharenum: ([], [(0, data)], None)
|
|
for sharenum, data
|
|
in shares.items()
|
|
}
|
|
read_vector = []
|
|
|
|
storage_server.slot_testv_and_readv_and_writev(
|
|
storage_index,
|
|
secrets,
|
|
test_and_write_vectors,
|
|
read_vector,
|
|
)
|