mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-11 03:37:20 +00:00
Avoid fetching file a second time when source md5 can't be fetched
This commit is contained in:
parent
9e7eec7a19
commit
7c4bf97a7f
1 changed files with 14 additions and 8 deletions
|
@ -98,7 +98,16 @@ async function sendStream(bucketName, key, readStream, sourceMd5) {
|
|||
const response = await _getClientForBucket(bucketName)
|
||||
.upload(uploadOptions, { partSize: 100 * 1024 * 1024 })
|
||||
.promise()
|
||||
const destMd5 = await _md5FromResponse(response)
|
||||
let destMd5 = _md5FromResponse(response)
|
||||
if (!destMd5) {
|
||||
// the eTag isn't in md5 format so we need to calculate it ourselves
|
||||
const verifyStream = await getFileStream(
|
||||
response.Bucket,
|
||||
response.Key,
|
||||
{}
|
||||
)
|
||||
destMd5 = await PersistorHelper.calculateStreamMd5(verifyStream)
|
||||
}
|
||||
|
||||
// if we didn't have an md5 hash, we should compare our computed one with S3's
|
||||
// as we couldn't tell S3 about it beforehand
|
||||
|
@ -219,8 +228,7 @@ async function getFileMd5Hash(bucketName, key) {
|
|||
const response = await _getClientForBucket(bucketName)
|
||||
.headObject({ Bucket: bucketName, Key: key })
|
||||
.promise()
|
||||
const md5 = await _md5FromResponse(response)
|
||||
return md5
|
||||
return _md5FromResponse(response)
|
||||
} catch (err) {
|
||||
throw PersistorHelper.wrapError(
|
||||
err,
|
||||
|
@ -364,12 +372,10 @@ function _buildClientOptions(bucketCredentials) {
|
|||
return options
|
||||
}
|
||||
|
||||
async function _md5FromResponse(response) {
|
||||
let md5 = (response.ETag || '').replace(/[ "]/g, '')
|
||||
function _md5FromResponse(response) {
|
||||
const md5 = (response.ETag || '').replace(/[ "]/g, '')
|
||||
if (!md5.match(/^[a-f0-9]{32}$/)) {
|
||||
// the eTag isn't in md5 format so we need to calculate it ourselves
|
||||
const stream = await getFileStream(response.Bucket, response.Key, {})
|
||||
md5 = await PersistorHelper.calculateStreamMd5(stream)
|
||||
return null
|
||||
}
|
||||
|
||||
return md5
|
||||
|
|
Loading…
Add table
Reference in a new issue