From 959cb7b015ff430238000c632b592430a5b83979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Garc=C3=ADa=20de=20Prada?= Date: Fri, 24 Jun 2022 10:37:59 +0200 Subject: [PATCH] Retrieve Etag from successful upload --- .../files/UploadFileFromFileSystemOperation.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt index a82b8d93..93a2357a 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt @@ -39,7 +39,6 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull import timber.log.Timber import java.io.File import java.net.URL -import java.util.HashSet import java.util.concurrent.atomic.AtomicBoolean /** @@ -63,6 +62,8 @@ open class UploadFileFromFileSystemOperation( protected val dataTransferListener: MutableSet = HashSet() protected var fileRequestBody: FileRequestBody? = null + var etag: String = "" + override fun run(client: OwnCloudClient): RemoteOperationResult { var result: RemoteOperationResult try { @@ -107,6 +108,14 @@ open class UploadFileFromFileSystemOperation( val status = client.executeHttpMethod(putMethod) return if (isSuccess(status)) { + etag = WebdavUtils.getEtagFromResponse(putMethod) + // Get rid of extra quotas + etag = etag.replace("\"", "") + if (etag.isEmpty()) { + Timber.e("Could not read eTag from response uploading %s", localPath) + } else { + Timber.d("File uploaded successfully. New etag for file ${fileToUpload.name} is $etag") + } RemoteOperationResult(ResultCode.OK).apply { data = Unit } } else { // synchronization failed RemoteOperationResult(putMethod)