@@ -62,9 +62,6 @@ func FileHandler(handlerData web.HandlerData, w http.ResponseWriter, r *http.Req
6262 }
6363 }
6464
65- // Determine if an update was applied
66- var didUpdate bool
67-
6865 // Execute action
6966 switch action {
7067 case "delete" :
@@ -89,6 +86,7 @@ func FileHandler(handlerData web.HandlerData, w http.ResponseWriter, r *http.Req
8986 case "update" :
9087 {
9188 var count uint32
89+ var didUpdate bool
9290
9391 for _ , file := range files {
9492 didUpdate , err = updateFile (& file , handlerData , request .Updates )
@@ -108,7 +106,7 @@ func FileHandler(handlerData web.HandlerData, w http.ResponseWriter, r *http.Req
108106 Count : count ,
109107 })
110108 }
111- // Get file
109+ // Download file
112110 case "get" :
113111 {
114112 // Use first file
@@ -117,7 +115,6 @@ func FileHandler(handlerData web.HandlerData, w http.ResponseWriter, r *http.Req
117115 return err
118116 }
119117 }
120- // Publish a file
121118 case "publish" :
122119 {
123120 resp , err := publishFiles (files , request .PublicName , request .All , handlerData .Db )
@@ -184,32 +181,29 @@ func serveFile(file models.File, w http.ResponseWriter, handlerData web.HandlerD
184181 return err
185182 }
186183
187- // Set ContentType header
184+ // Set required headers
188185 if len (file .FileType ) > 0 && filetype .IsMIMESupported (file .FileType ) {
189186 w .Header ().Set (libdm .HeaderContentType , file .FileType )
190187 }
191188
192- // Set filename header
193189 w .Header ().Set (libdm .HeaderFileName , file .Name )
194-
195- // Set checksum header
196190 w .Header ().Set (libdm .HeaderChecksum , file .Checksum )
197-
198- // Set fileID header
199191 w .Header ().Set (libdm .HeaderFileID , strconv .FormatUint (uint64 (file .ID ), 10 ))
200-
201- // Set ContentLength header
202192 w .Header ().Set (libdm .HeaderContentLength , strconv .FormatInt (file .FileSize , 10 ))
203193
204- // Set encryption cipher header
205194 if file .Encryption .Valid {
206195 w .Header ().Set (libdm .HeaderEncryption , libdm .ChiperToString (file .Encryption .Int32 ))
207196 }
208197
209198 // Write contents to responsewriter
210- buff := make ([]byte , 10 * 1024 )
199+ buff := make ([]byte , 1024 * 1024 )
211200 _ , err = io .CopyBuffer (w , f , buff )
212201 if err != nil {
202+ switch err {
203+ case io .EOF , io .ErrUnexpectedEOF :
204+ return nil
205+ }
206+
213207 return err
214208 }
215209
@@ -242,15 +236,13 @@ func publishFiles(files []models.File, publicName string, all bool, db *gorm.DB)
242236 return nil , RErrAlreadyExists .Prepend ("Public name" )
243237 }
244238
245- // Use bulk response if requested "all"
246239 if all && len (files ) > 1 {
247240 bulkPublishResponse .Files = append (bulkPublishResponse .Files , libdm.UploadResponse {
248241 FileID : file .ID ,
249242 Filename : file .Name ,
250243 PublicFilename : file .PublicFilename .String ,
251244 })
252245 } else {
253- // Otherwise respond with a single item
254246 return libdm.PublishResponse {
255247 PublicFilename : file .PublicFilename .String ,
256248 }, nil
0 commit comments