mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #6 from overleaf/em-s3-options
Add S3 options: httpOptions, maxRetries
This commit is contained in:
commit
c2c9a994ff
3 changed files with 23 additions and 0 deletions
|
@ -264,6 +264,8 @@ For the `FS` persistor, the `bucketName` should be the full path to the folder o
|
|||
- `s3.key` (required): The AWS access key ID
|
||||
- `s3.secret` (required): The AWS secret access key
|
||||
- `s3.partSize`: The part size for S3 uploads. Defaults to 100 megabytes.
|
||||
- `s3.httpOptions`: HTTP options passed directly to the [S3 constructor](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#constructor-property).
|
||||
- `s3.maxRetries`: The number of times the S3 client will retry in case of an error
|
||||
- `s3.endpoint`: For testing - overrides the S3 endpoint to use a different service (e.g. a fake S3 server)
|
||||
- `s3.pathStyle`: For testing - use old path-style URLs, for services that do not support subdomain-based access
|
||||
|
||||
|
|
|
@ -361,6 +361,12 @@ module.exports = class S3Persistor extends AbstractPersistor {
|
|||
options.s3ForcePathStyle = true
|
||||
}
|
||||
|
||||
for (const opt of ['httpOptions', 'maxRetries']) {
|
||||
if (this.settings[opt]) {
|
||||
options[opt] = this.settings[opt]
|
||||
}
|
||||
}
|
||||
|
||||
return options
|
||||
}
|
||||
|
||||
|
|
|
@ -265,6 +265,21 @@ describe('S3PersistorTests', function () {
|
|||
})
|
||||
})
|
||||
|
||||
describe('when given S3 options', function () {
|
||||
const httpOptions = { timeout: 2000 }
|
||||
const maxRetries = 2
|
||||
|
||||
beforeEach(async function () {
|
||||
settings.httpOptions = httpOptions
|
||||
settings.maxRetries = maxRetries
|
||||
await S3Persistor.getObjectStream(bucket, key)
|
||||
})
|
||||
|
||||
it('configures the S3 client appropriately', function () {
|
||||
expect(S3).to.have.been.calledWithMatch({ httpOptions, maxRetries })
|
||||
})
|
||||
})
|
||||
|
||||
describe("when the file doesn't exist", function () {
|
||||
let error, stream
|
||||
|
||||
|
|
Loading…
Reference in a new issue