Exemple #1
0
def get_file_chunks(filename, chunk_size):
    with open(filename, 'rb') as f:
        while True:
            piece = f.read(chunk_size)
            if len(piece) == 0:
                return
            yield chunk_pb2.Chunk(buffer=piece)
def get_file_chunks(filename):
    with open(filename, 'rb') as f:
        count = 0
        while True:
            print("get file chunk : %d" % count)
            count = count + 1
            piece = f.read(CHUNK_SIZE)
            if len(piece) == 0:
                return
            yield chunk_pb2.Chunk(buffer=piece)
Exemple #3
0
def get_file_chunks(filename):
    # rb   -> Abre um arquivo para leitura apenas em formato binário.
    # rb + -> Abre um arquivo para leitura e gravação em formato binário.
    # ab + -> Abre um arquivo para anexar e ler em formato binário.
    with open(filename, 'rb') as f:
        while True:
            piece = f.read(CHUNK_SIZE)
            tac = time.perf_counter()
            print(f"Lendo as Partes: ->> {tac:0.4f}")
            if len(piece) == 0:
                return
            yield chunk_pb2.Chunk(buffer=piece)
                                  stream_of_bytes_chunks)
    assert send_node.hash_id_exists_in_memory(
        hash_id) == True  # it should exist

    print("\nSize available in bytes ",
          send_node.get_node_available_memory_bytes())
    print("Hashes saved so far: ")
    # for hash_ in send_node.get_node_stored_hashes_list_iterator():
    #     print(hash_.hash_id)

    # download file request
    stream_of_bytes_chunks_downloaded = send_node.download_chunk_stream(
        hash_id)
    output_path = "data/test_out.txt"
    save_chunks_to_file(output_path, stream_of_bytes_chunks_downloaded)

    ######### send (upload) string request as 1 chunk of bytes #######

    message = "Hello my name is Gash".encode()
    message_chunk_bytes = chunk_pb2.Chunk(buffer=message)
    message_id = "1223"
    hash_id = hashlib.sha1(message_id.encode()).hexdigest()

    send_node.upload_single_chunk(hash_id, chunk_size, message_chunk_bytes)

    # download file request
    stream_of_bytes_chunks_downloaded = send_node.download_chunk_stream(
        hash_id)
    output_path = "data/test_out3.txt"
    save_chunks_to_file(output_path, stream_of_bytes_chunks_downloaded)