@@ -2,18 +2,15 @@ package fields
22
33import (
44 "archive/zip"
5+ "bytes"
56 "context"
6- "crypto/sha256"
7- "encoding/hex"
87 "encoding/json"
98 "errors"
109 "fmt"
11- "github.com/elastic/elastic-integration-corpus-generator-tool/internal/settings"
1210 "io"
1311 "io/ioutil"
1412 "net/http"
1513 "net/url"
16- "os"
1714 "path"
1815 "path/filepath"
1916 "strings"
@@ -95,38 +92,25 @@ func getFieldsFiles(ctx context.Context, baseURL, integration, dataStream, versi
9592
9693 downloadURL , err := makeDownloadURL (baseURL , downloadPayload .Download )
9794 r , err = getFromURL (ctx , downloadURL .String ())
98- if err != nil {
99- return nil , err
100- }
101-
102- h := sha256 .New ()
103- h .Write ([]byte (downloadURL .String ()))
104- prefix := hex .EncodeToString (h .Sum (nil ))
95+ defer func (r io.ReadCloser ) {
96+ if r != nil {
97+ _ = r .Close ()
98+ }
99+ }(r )
105100
106- packageTempDir , err := os .MkdirTemp (settings .CacheDir (), prefix )
107- if err != nil {
108- return nil , err
109- }
110- packageArchive := path .Join (packageTempDir , "package.zip" )
111- f , err := os .Create (packageArchive )
112101 if err != nil {
113102 return nil , err
114103 }
115104
116- _ , err = io .Copy (f , r )
117- _ = f .Close ()
105+ zipContent , err := ioutil .ReadAll (r )
118106 if err != nil {
119-
120107 return nil , err
121108 }
122109
123- archive , err := zip .OpenReader ( packageArchive )
110+ archive , err := zip .NewReader ( bytes . NewReader ( zipContent ), int64 ( len ( zipContent )) )
124111 if err != nil {
125112 return nil , err
126113 }
127- defer func () {
128- _ = archive .Close ()
129- }()
130114
131115 prefixFieldsPath := path .Join (fmt .Sprintf ("%s-%s" , integration , version ), dataStreamSlug , dataStream , fieldsSlug )
132116
@@ -143,11 +127,17 @@ func getFieldsFiles(ctx context.Context, baseURL, integration, dataStream, versi
143127 fieldsFileName := z .Name
144128 zr , err := z .Open ()
145129 if err != nil {
130+ if zr != nil {
131+ _ = zr .Close ()
132+ }
146133 return nil , err
147134 }
148135
149136 fieldsFileContent , err := ioutil .ReadAll (zr )
150137 if err != nil {
138+ if zr != nil {
139+ _ = zr .Close ()
140+ }
151141 return nil , err
152142 }
153143
@@ -175,20 +165,16 @@ func getFromURL(ctx context.Context, srcURL string) (io.ReadCloser, error) {
175165 client := & http.Client {}
176166 resp , err := client .Do (req )
177167 if err != nil {
178- defer func (r io.ReadCloser ) {
179- if r != nil {
180- _ = r .Close ()
181- }
182- }(resp .Body )
168+ if resp .Body != nil {
169+ _ = resp .Body .Close ()
170+ }
183171 return nil , err
184172 }
185173
186174 if resp .StatusCode != http .StatusOK {
187- defer func (r io.ReadCloser ) {
188- if r != nil {
189- _ = r .Close ()
190- }
191- }(resp .Body )
175+ if resp .Body != nil {
176+ _ = resp .Body .Close ()
177+ }
192178 return nil , ErrNotFound
193179 }
194180
0 commit comments