Skip to content

Commit f4dee9c

Browse files
authored
fix: chunk act upload (#5008)
1 parent cbb1f24 commit f4dee9c

File tree

3 files changed

+28
-24
lines changed

3 files changed

+28
-24
lines changed

pkg/api/api.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,11 @@ func (s *Service) corsHandler(h http.Handler) http.Handler {
529529
allowedHeaders := []string{
530530
"User-Agent", "Accept", "X-Requested-With", "Access-Control-Request-Headers", "Access-Control-Request-Method", "Accept-Ranges", "Content-Encoding",
531531
AuthorizationHeader, AcceptEncodingHeader, ContentTypeHeader, ContentDispositionHeader, RangeHeader, OriginHeader,
532-
SwarmTagHeader, SwarmPinHeader, SwarmEncryptHeader, SwarmIndexDocumentHeader, SwarmErrorDocumentHeader, SwarmCollectionHeader, SwarmPostageBatchIdHeader, SwarmPostageStampHeader, SwarmDeferredUploadHeader, SwarmRedundancyLevelHeader, SwarmRedundancyStrategyHeader, SwarmRedundancyFallbackModeHeader, SwarmChunkRetrievalTimeoutHeader, SwarmLookAheadBufferSizeHeader, SwarmFeedIndexHeader, SwarmFeedIndexNextHeader, SwarmSocSignatureHeader, SwarmOnlyRootChunk, GasPriceHeader, GasLimitHeader, ImmutableHeader,
532+
SwarmTagHeader, SwarmPinHeader, SwarmEncryptHeader, SwarmIndexDocumentHeader, SwarmErrorDocumentHeader, SwarmCollectionHeader,
533+
SwarmPostageBatchIdHeader, SwarmPostageStampHeader, SwarmDeferredUploadHeader, SwarmRedundancyLevelHeader,
534+
SwarmRedundancyStrategyHeader, SwarmRedundancyFallbackModeHeader, SwarmChunkRetrievalTimeoutHeader, SwarmLookAheadBufferSizeHeader,
535+
SwarmFeedIndexHeader, SwarmFeedIndexNextHeader, SwarmSocSignatureHeader, SwarmOnlyRootChunk, GasPriceHeader, GasLimitHeader, ImmutableHeader,
536+
SwarmActHeader, SwarmActTimestampHeader, SwarmActPublisherHeader, SwarmActHistoryAddressHeader,
533537
}
534538
allowedHeadersStr := strings.Join(allowedHeaders, ", ")
535539

pkg/api/chunk.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,21 @@ func (s *Service) chunkUploadHandler(w http.ResponseWriter, r *http.Request) {
169169
}
170170
}
171171

172+
err = putter.Put(r.Context(), chunk)
173+
if err != nil {
174+
logger.Debug("chunk upload: write chunk failed", "chunk_address", chunk.Address(), "error", err)
175+
logger.Error(nil, "chunk upload: write chunk failed")
176+
switch {
177+
case errors.Is(err, postage.ErrBucketFull):
178+
jsonhttp.PaymentRequired(ow, "batch is overissued")
179+
case errors.Is(err, postage.ErrInvalidBatchSignature):
180+
jsonhttp.BadRequest(ow, "stamp signature is invalid")
181+
default:
182+
jsonhttp.InternalServerError(ow, "chunk write error")
183+
}
184+
return
185+
}
186+
172187
reference := chunk.Address()
173188
if headers.Act {
174189
reference, err = s.actEncryptionHandler(r.Context(), w, putter, reference, headers.HistoryAddress)
@@ -189,21 +204,6 @@ func (s *Service) chunkUploadHandler(w http.ResponseWriter, r *http.Request) {
189204
}
190205
}
191206

192-
err = putter.Put(r.Context(), chunk)
193-
if err != nil {
194-
logger.Debug("chunk upload: write chunk failed", "chunk_address", chunk.Address(), "error", err)
195-
logger.Error(nil, "chunk upload: write chunk failed")
196-
switch {
197-
case errors.Is(err, postage.ErrBucketFull):
198-
jsonhttp.PaymentRequired(ow, "batch is overissued")
199-
case errors.Is(err, postage.ErrInvalidBatchSignature):
200-
jsonhttp.BadRequest(ow, "stamp signature is invalid")
201-
default:
202-
jsonhttp.InternalServerError(ow, "chunk write error")
203-
}
204-
return
205-
}
206-
207207
err = putter.Done(swarm.ZeroAddress)
208208
if err != nil {
209209
logger.Debug("done split failed", "error", err)

pkg/api/soc.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,14 @@ func (s *Service) socUploadHandler(w http.ResponseWriter, r *http.Request) {
172172
return
173173
}
174174

175+
err = putter.Put(r.Context(), sch)
176+
if err != nil {
177+
logger.Debug("write chunk failed", "chunk_address", sch.Address(), "error", err)
178+
logger.Error(nil, "write chunk failed")
179+
jsonhttp.BadRequest(ow, "chunk write error")
180+
return
181+
}
182+
175183
reference := sch.Address()
176184
if headers.Act {
177185
reference, err = s.actEncryptionHandler(r.Context(), w, putter, reference, headers.HistoryAddress)
@@ -192,14 +200,6 @@ func (s *Service) socUploadHandler(w http.ResponseWriter, r *http.Request) {
192200
}
193201
}
194202

195-
err = putter.Put(r.Context(), sch)
196-
if err != nil {
197-
logger.Debug("write chunk failed", "chunk_address", sch.Address(), "error", err)
198-
logger.Error(nil, "write chunk failed")
199-
jsonhttp.BadRequest(ow, "chunk write error")
200-
return
201-
}
202-
203203
err = putter.Done(sch.Address())
204204
if err != nil {
205205
logger.Debug("done split failed", "error", err)

0 commit comments

Comments
 (0)