mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-07 16:06:08 +00:00
Retrieve Etag from successful upload
This commit is contained in:
parent
b59a4e6947
commit
959cb7b015
@ -39,7 +39,6 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
|||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.HashSet
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,6 +62,8 @@ open class UploadFileFromFileSystemOperation(
|
|||||||
protected val dataTransferListener: MutableSet<OnDatatransferProgressListener> = HashSet()
|
protected val dataTransferListener: MutableSet<OnDatatransferProgressListener> = HashSet()
|
||||||
protected var fileRequestBody: FileRequestBody? = null
|
protected var fileRequestBody: FileRequestBody? = null
|
||||||
|
|
||||||
|
var etag: String = ""
|
||||||
|
|
||||||
override fun run(client: OwnCloudClient): RemoteOperationResult<Unit> {
|
override fun run(client: OwnCloudClient): RemoteOperationResult<Unit> {
|
||||||
var result: RemoteOperationResult<Unit>
|
var result: RemoteOperationResult<Unit>
|
||||||
try {
|
try {
|
||||||
@ -107,6 +108,14 @@ open class UploadFileFromFileSystemOperation(
|
|||||||
|
|
||||||
val status = client.executeHttpMethod(putMethod)
|
val status = client.executeHttpMethod(putMethod)
|
||||||
return if (isSuccess(status)) {
|
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<Unit>(ResultCode.OK).apply { data = Unit }
|
RemoteOperationResult<Unit>(ResultCode.OK).apply { data = Unit }
|
||||||
} else { // synchronization failed
|
} else { // synchronization failed
|
||||||
RemoteOperationResult<Unit>(putMethod)
|
RemoteOperationResult<Unit>(putMethod)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user