* Logs a BATCH.DELETE.OBJECT entry for individual object deletions in multi-object delete * @param {object} req - HTTP request object * @param {string} requestID - Request ID from the response * @param {string} objectKey - Key of the object being deleted * @param {number|null} objectSize - Size
(req, requestID, objectKey, objectSize, error)
| 557 | * @return {undefined} |
| 558 | */ |
| 559 | function logBatchDeleteObject(req, requestID, objectKey, objectSize, error) { |
| 560 | if (!req.serverAccessLog || !serverAccessLogger) { |
| 561 | return; |
| 562 | } |
| 563 | |
| 564 | const params = req.serverAccessLog; |
| 565 | let httpCode = 204; |
| 566 | let errorCode = undefined; |
| 567 | |
| 568 | if (error) { |
| 569 | httpCode = error.code ? parseInt(error.code, 10) : 500; |
| 570 | errorCode = error.message || 'InternalError'; |
| 571 | } |
| 572 | |
| 573 | const logEntry = buildLogEntry(req, params, { |
| 574 | bytesDeleted: objectSize, |
| 575 | contentLength: objectSize, |
| 576 | operation: 'BATCH.DELETE.OBJECT', |
| 577 | objectSize, |
| 578 | httpCode, |
| 579 | errorCode, |
| 580 | objectKey, |
| 581 | requestID, |
| 582 | aclRequired: req.serverAccessLog?.aclRequired, |
| 583 | }); |
| 584 | |
| 585 | serverAccessLogger.write(`${JSON.stringify(logEntry)}\n`); |
| 586 | } |
| 587 | |
| 588 | function logServerAccess(req, res) { |
| 589 | if (!req.serverAccessLog || !res.serverAccessLog || !serverAccessLogger) { |
no test coverage detected