Skip to content

Commit b954a45

Browse files
author
Will Toozs
committed
fixup: callPostObject error cleanup
1 parent 8d59e1c commit b954a45

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

lib/api/apiUtils/apiCallers/callPostObject.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ async function parseFormData(request, response, requestContexts, log) {
5656

5757
formDataParser.on('file', async (fieldname, file, filename, encoding, mimetype) => {
5858
if (fileEventData) {
59-
const err = errors.InvalidArgument
60-
.customizeDescription('POST requires exactly one file upload per request.');
6159
file.resume(); // Resume the stream to drain and discard the file
6260
if (tempFilePath) {
6361
fs.unlink(tempFilePath, unlinkErr => {
@@ -66,15 +64,15 @@ async function parseFormData(request, response, requestContexts, log) {
6664
}
6765
});
6866
}
69-
return reject(err);
67+
return reject(errors.InvalidArgument
68+
.customizeDescription('POST requires exactly one file upload per request.'));
7069
}
7170

7271
fileEventData = { fieldname, file, filename, encoding, mimetype };
7372
if (!('key' in request.formData)) {
74-
const err = errors.InvalidArgument
73+
return reject(errors.InvalidArgument
7574
.customizeDescription('Bucket POST must contain a field named '
76-
+ "'key'. If it is specified, please check the order of the fields.");
77-
return reject(err);
75+
+ "'key'. If it is specified, please check the order of the fields."));
7876
}
7977
// Replace `${filename}` with the actual filename
8078
request.formData.key = request.formData.key.replace('${filename}', filename);
@@ -111,9 +109,8 @@ async function parseFormData(request, response, requestContexts, log) {
111109

112110
formDataParser.on('finish', () => {
113111
if (!fileEventData) {
114-
const err = errors.InvalidArgument
115-
.customizeDescription('POST requires exactly one file upload per request.');
116-
return reject(err);
112+
return reject(errors.InvalidArgument
113+
.customizeDescription('POST requires exactly one file upload per request.'));
117114
}
118115
return formParserFinishedPromiseResolve();
119116
});
@@ -130,11 +127,12 @@ async function parseFormData(request, response, requestContexts, log) {
130127
});
131128
}
132129

133-
function getFileStat(filePath) {
130+
function getFileStat(filePath, log) {
134131
return new Promise((resolve, reject) => {
135132
fs.stat(filePath, (err, stats) => {
136133
if (err) {
137-
return reject(err);
134+
log.trace('Error getting file size', { error: err });
135+
return reject(errors.InternalError);
138136
}
139137
return resolve(stats);
140138
});
@@ -151,7 +149,7 @@ async function processPostForm(request, response, requestContexts, log, callback
151149
const { userInfo, authorizationResults, streamingV4Params } =
152150
await parseFormData(request, response, requestContexts, log);
153151

154-
const fileStat = await getFileStat(request.fileEventData.file);
152+
const fileStat = await getFileStat(request.fileEventData.file, log);
155153
request.parsedContentLength = fileStat.size;
156154
request.fileEventData.file = fs.createReadStream(request.fileEventData.file);
157155
if (request.formData['content-type']) {

0 commit comments

Comments
 (0)