@defra/wls-file-queue-processor
Version:
Interface to Microsoft Sharepoint. Queue consumer.
20 lines (17 loc) • 622 B
JavaScript
import { AWS } from '@defra/wls-connectors-lib'
const { readFileStream } = AWS.S3()
export class RecoverableUploadError extends Error {}
export class UnRecoverableUploadError extends Error {}
export const getReadStream = async objectKey => {
try {
return readFileStream(objectKey)
} catch ({ httpStatusCode, message }) {
if (Math.floor(httpStatusCode / 100) === 4) {
// Client errors, such as missing buckets are unrecoverable
throw new UnRecoverableUploadError(message)
} else {
// Other errors are assumed to be recoverable
throw new RecoverableUploadError(message)
}
}
}