MCPcopy
hub / github.com/minio/minio-go / processRemoveMultiObjectsResponse

Function processRemoveMultiObjectsResponse

api-remove.go:259–295  ·  view source on GitHub ↗

processRemoveMultiObjectsResponse - parse the remove multi objects web service and return the success/failure result status for each object

(body io.Reader, resultCh chan<- RemoveObjectResult)

Source from the content-addressed store, hash-verified

257// processRemoveMultiObjectsResponse - parse the remove multi objects web service
258// and return the success/failure result status for each object
259func processRemoveMultiObjectsResponse(body io.Reader, resultCh chan<- RemoveObjectResult) {
260 // Parse multi delete XML response
261 rmResult := &deleteMultiObjectsResult{}
262 err := xmlDecoder(body, rmResult)
263 if err != nil {
264 resultCh <- RemoveObjectResult{ObjectName: "", Err: err}
265 return
266 }
267
268 // Fill deletion that returned success
269 for _, obj := range rmResult.DeletedObjects {
270 resultCh <- RemoveObjectResult{
271 ObjectName: obj.Key,
272 // Only filled with versioned buckets
273 ObjectVersionID: obj.VersionID,
274 DeleteMarker: obj.DeleteMarker,
275 DeleteMarkerVersionID: obj.DeleteMarkerVersionID,
276 }
277 }
278
279 // Fill deletion that returned an error.
280 for _, obj := range rmResult.UnDeletedObjects {
281 // Version does not exist is not an error ignore and continue.
282 switch obj.Code {
283 case InvalidArgument, NoSuchVersion:
284 continue
285 }
286 resultCh <- RemoveObjectResult{
287 ObjectName: obj.Key,
288 ObjectVersionID: obj.VersionID,
289 Err: ErrorResponse{
290 Code: obj.Code,
291 Message: obj.Message,
292 },
293 }
294 }
295}
296
297// RemoveObjectsOptions represents options specified by user for RemoveObjects call
298type RemoveObjectsOptions struct {

Callers 1

removeObjectsMethod · 0.85

Calls 1

xmlDecoderFunction · 0.70

Tested by

no test coverage detected