diff --git a/external/cmn/sp_client.go b/external/cmn/sp_client.go index f9eb203..15cbb06 100644 --- a/external/cmn/sp_client.go +++ b/external/cmn/sp_client.go @@ -3,6 +3,7 @@ package cmn import ( "context" "encoding/xml" + "io" "net/http" "strconv" "strings" @@ -61,3 +62,19 @@ func (c *SPClient) GetBucketReadQuota(ctx context.Context, bucketName string) (Q } return QuotaResult, nil } + +func (c *SPClient) GetBundleObject(ctx context.Context, bucketName, objectName string) (io.ReadCloser, error) { + var urlStr string + parts := strings.Split(c.host, "//") + urlStr = parts[0] + "//" + bucketName + "." + parts[1] + "/" + objectName + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, urlStr, nil) + if err != nil { + return nil, err + } + resp, err := c.hc.Do(req) + if err != nil { + return nil, err + } + return resp.Body, nil +} diff --git a/syncer/syncer.go b/syncer/syncer.go index 589040c..b5b6a36 100644 --- a/syncer/syncer.go +++ b/syncer/syncer.go @@ -154,7 +154,7 @@ func (s *BlobSyncer) sync() error { var latestBlockResp *structs.GetBlockV2Response block, err = s.client.GetBeaconBlock(ctx, blockID) if err != nil { - if err != eth.ErrBlockNotFound { + if !errors.Is(err, eth.ErrBlockNotFound) { return err } // Both try to get forked block and non-exist block will return 404. When the response is ErrBlockNotFound, @@ -217,7 +217,7 @@ func (s *BlobSyncer) sync() error { dbErr = err } if dbErr != nil { - logging.Logger.Errorf("failed to save block(h=%d) to DB, err=%s", blockID, err.Error()) + logging.Logger.Errorf("failed to save block(h=%d) to DB, err=%s", blockID, dbErr.Error()) return dbErr } if blockID == s.bundleDetail.finalizeBlockID {