);
}
- private extendFileURL = (file: CollectionDirectory | CollectionFile) => ({
- ...file,
- url: this.webdavClient.defaults.baseURL + file.url + '?api_token=' + this.authService.getApiToken()
- })
+ private extendFileURL = (file: CollectionDirectory | CollectionFile) => {
+ const baseUrl = this.webdavClient.defaults.baseURL.endsWith('/')
+ ? this.webdavClient.defaults.baseURL.slice(0, -1)
+ : this.webdavClient.defaults.baseURL;
+ const apiToken = this.authService.getApiToken();
+ const splittedApiToken = apiToken ? apiToken.split('/') : [];
+ const userApiToken = `/t=${splittedApiToken[2]}/`;
+ const splittedPrevFileUrl = file.url.split('/');
+ const url = `${baseUrl}/${splittedPrevFileUrl[1]}${userApiToken}${splittedPrevFileUrl[2]}`;
+ return {
+ ...file,
+ url
+ };
+ }
private async uploadFile(collectionUuid: string, file: File, fileId: number, onProgress: UploadProgress = () => { return; }) {
const fileURL = `c=${collectionUuid}/${file.name}`;
- const fileContent = await fileToArrayBuffer(file);
const requestConfig = {
headers: {
'Content-Type': 'text/octet-stream'
onProgress(fileId, e.loaded, e.total, Date.now());
}
};
- return this.webdavClient.put(fileURL, fileContent, requestConfig);
-
+ return this.webdavClient.upload(fileURL, '', [file], requestConfig);
}
update(uuid: string, data: Partial<CollectionResource>) {