Как закачать файл, прикрепить и скачать в корде?

Я попытался загрузить и отправить файл с помощью следующей ссылки https://github.com/corda/corda/tree/release-M14.

Когда я пытался использовать его в примере Cordaapp, он показывает много ошибок. Есть ли простой пример для загрузки файла и прикрепления? Есть ли другой простой пример, чтобы сослаться на то же самое?


person Ash    schedule 20.06.2018    source источник


Ответы (1)


См. Пример черного списка здесь.

Вы можете загрузить вложение в узел через HTTP:

<form action="/upload/attachment" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <input type="file" name="jar" class="form-control">
    </div>
    <br>
    <button type="submit" class="btn btn-default">Upload JAR</button>
</form>

Или вы можете загрузить вложение с помощью клиента RPC:

val nodeAddress = parse(arg)
val rpcConnection = CordaRPCClient(nodeAddress).start("user1", "test")
val proxy = rpcConnection.proxy

val attachmentHash = uploadAttachment(proxy, JAR_PATH)

Затем вы добавляете вложение в TransactionBuilder следующим образом:

val txBuilder = TransactionBuilder(notary)
    .addAttachment(attachmentHash)

Выбор хеша вложения зависит от вас. Вы можете, например, передать его как аргумент потоку.

person Joel    schedule 21.06.2018
comment
Большое спасибо. Как передать вложение на другой узел и загрузить то же самое с другого узла? - person Ash; 21.06.2018
comment
Если на вложение ссылается хэш в транзакции, которую узел A отправляет узлу B, и узел B никогда не видел вложение, соответствующее этому хешу, они автоматически запросят его у узла A и кэшируют его локально. - person Joel; 21.06.2018
comment
Когда вы говорите cache it locally, вы имеете в виду, что он хранится в памяти узлом B до тех пор, пока он не завершит обработку транзакции, или он постоянно сохраняется в базе данных узла B? - person Suhas; 17.11.2018
comment
Вложение постоянно сохраняется в базе данных узла как большой двоичный объект. - person Joel; 19.11.2018