overleaf/libraries/object-persistor/src/AbstractPersistor.js
Eric Mc Sween 523ff9c4cd Support metadata when uploading objects
Add contentType and contentEncoding options to sendStream(). These
options will set the corresponding metadata on the object.

This changes the API. The fourth argument to sendStream() used to be the
source md5. Now, it's an options object and the source md5 is a property
of that object.
2020-07-08 08:13:53 -04:00

96 lines
2.2 KiB
JavaScript

const { NotImplementedError } = require('./Errors')
module.exports = class AbstractPersistor {
async sendFile(location, target, source) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'sendFile',
location,
target,
source
})
}
async sendStream(location, target, sourceStream, opts = {}) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'sendStream',
location,
target,
opts
})
}
// opts may be {start: Number, end: Number}
async getObjectStream(location, name, opts) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'getObjectStream',
location,
name,
opts
})
}
async getRedirectUrl(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'getRedirectUrl',
location,
name
})
}
async getObjectSize(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'getObjectSize',
location,
name
})
}
async getObjectMd5Hash(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'getObjectMd5Hash',
location,
name
})
}
async copyObject(location, fromName, toName) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'copyObject',
location,
fromName,
toName
})
}
async deleteObject(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'deleteObject',
location,
name
})
}
async deleteDirectory(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'deleteDirectory',
location,
name
})
}
async checkIfObjectExists(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'checkIfObjectExists',
location,
name
})
}
async directorySize(location, name) {
throw new NotImplementedError('method not implemented in persistor', {
method: 'directorySize',
location,
name
})
}
}