Skip to content

Commit e717116

Browse files
committed
upgrade uploader
1 parent a7a0dea commit e717116

File tree

5 files changed

+27
-38
lines changed

5 files changed

+27
-38
lines changed

README.md

+5-9
Original file line numberDiff line numberDiff line change
@@ -240,11 +240,10 @@ uploader, err := goar.CreateUploader(w.Client, tx, nil)
240240
if err != nil {
241241
return
242242
}
243-
for !uploader.IsComplete() {
244-
err = uploader.UploadChunk()
245-
if err != nil {
246-
return
247-
}
243+
244+
err = uploader.Once()
245+
if err != nil {
246+
return
248247
}
249248
```
250249

@@ -280,10 +279,7 @@ txId := "myTxId"
280279
// get uploader by txId and post big data by chunks
281280
uploader, err := goar.CreateUploader(wallet.Client, txId, bigData)
282281
assert.NoError(t, err)
283-
for !uploader.IsComplete() {
284-
err := uploader.UploadChunk()
285-
assert.NoError(t, err)
286-
}
282+
assert.NoError(t, uploader.Once())
287283
```
288284

289285
##### NOTE: About all chunk transfer full example can be viewed in path `./example/chunks_tx_test.go`

client_broadcast.go

+4-11
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,11 @@ func (c *Client) BroadcastData(txId string, data []byte, numOfNodes int64) error
4242
continue
4343
}
4444

45-
Loop:
46-
for !uploader.IsComplete() {
47-
if err := uploader.UploadChunk(); err != nil {
48-
break Loop
49-
}
50-
if uploader.LastResponseStatus != 200 {
51-
break Loop
52-
}
53-
}
54-
if uploader.IsComplete() { // upload success
55-
count++
45+
if err = uploader.Once(); err != nil {
46+
continue
5647
}
48+
49+
count++
5750
if count >= numOfNodes {
5851
return nil
5952
}

example/chunks_tx_test.go

+3-12
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ func Test_PostBigDataByChunks(t *testing.T) {
8383
// uploader Transaction
8484
uploader, err := goar.CreateUploader(wallet.Client, tx, nil)
8585
assert.NoError(t, err)
86-
for !uploader.IsComplete() {
87-
err := uploader.UploadChunk()
88-
assert.NoError(t, err)
89-
}
86+
assert.NoError(t, uploader.Once())
9087
}
9188

9289
// test retry upload(断点重传) post big size data by tx id
@@ -127,10 +124,7 @@ func Test_RetryUploadDataByTxId(t *testing.T) {
127124
// get uploader by txId and post big data by chunks
128125
uploader, err := goar.CreateUploader(wallet.Client, tx.ID, bigData)
129126
assert.NoError(t, err)
130-
for !uploader.IsComplete() {
131-
err := uploader.UploadChunk()
132-
assert.NoError(t, err)
133-
}
127+
assert.NoError(t, uploader.Once())
134128
}
135129

136130
// test continue upload(断点续传) big size data by last time uploader
@@ -171,10 +165,7 @@ func Test_ContinueUploadDataByLastUploader(t *testing.T) {
171165
// new uploader object by last time uploader
172166
newUploader, err := goar.CreateUploader(wallet.Client, lastUploader.FormatSerializedUploader(), bigData)
173167
assert.NoError(t, err)
174-
for !newUploader.IsComplete() {
175-
err := newUploader.UploadChunk()
176-
assert.NoError(t, err)
177-
}
168+
assert.NoError(t, newUploader.Once())
178169

179170
// end remove jsonUploaderFile.json file
180171
_ = os.Remove("./jsonUploaderFile.json")

uploader.go

+14
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,20 @@ func CreateUploader(api *Client, upload interface{}, data []byte) (*TransactionU
108108
return uploader, err
109109
}
110110

111+
func (tt *TransactionUploader) Once() (err error) {
112+
for !tt.IsComplete() {
113+
if err = tt.UploadChunk(); err != nil {
114+
return
115+
}
116+
117+
if tt.LastResponseStatus != 200 {
118+
return
119+
}
120+
}
121+
122+
return
123+
}
124+
111125
func (tt *TransactionUploader) IsComplete() bool {
112126
tChunks := tt.Transaction.Chunks
113127
if tChunks == nil {

wallet.go

+1-6
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,6 @@ func (w *Wallet) SendTransaction(tx *types.Transaction) (id string, err error) {
143143
if err != nil {
144144
return
145145
}
146-
for !uploader.IsComplete() {
147-
err = uploader.UploadChunk()
148-
if err != nil {
149-
return
150-
}
151-
}
146+
err = uploader.Once()
152147
return
153148
}

0 commit comments

Comments
 (0)