Я пытаюсь настроить sharepoint для выдачи исключения при повторной загрузке существующего имени файла. Я попытался установить @ microsoft.graph.conflictBehavior на неудачу, чтобы сделать это, но мои тесты продолжают терпеть неудачу, потому что не выдается исключение.
Вот функция Kotlin, которую я использую для загрузки документа , Любая помощь с благодарностью!
private fun upload(document: Document): Document {
val driveItemUploadableProperties = DriveItemUploadableProperties()
driveItemUploadableProperties.additionalDataManager()["contentType"] = JsonPrimitive(document.blob.contentType())
driveItemUploadableProperties.additionalDataManager()["@microsoft.graph.conflictBehavior"] = JsonPrimitive("fail")
val iDriveItemCreateUploadSessionRequest = buildDriveItemRequest(document.path).createUploadSession(driveItemUploadableProperties).buildRequest()
val uploadSession = retry { refreshToken { iDriveItemCreateUploadSessionRequest.post() } }
val provider = ChunkedUploadProvider(uploadSession, microsoftGraphClient, ByteArrayInputStream(document.blob.decode()), document.blob.decode().size, DriveItem::class.java)
provider.upload(listOf(QueryOption("@microsoft.graph.conflictBehavior", "fail")), object : IProgressCallback<DriveItem> {
override fun progress(current: Long, max: Long) {
logger.trace { "Upload progress [${document.path}]: $current done of $max." }
}
override fun success(result: DriveItem?) {
document.id = result?.id
logger.trace { "Upload done [${document.path}]" }
}
override fun failure(ex: ClientException?) {
when {
ex is GraphServiceException && ex.responseCode == HttpStatus.CONFLICT.value() -> throw ConflictException(null, ex.message)
ex != null -> throw ex
else -> error("Failure reported without exception")
}
}
})
return document
}