Skip to content

Temp file .part suffix incompatible with WebDAV mounts (nextcloud) #1288

@ltning

Description

@ltning

Overview

I'm using Nextcloud to host my image library, and icloudpd to sync icloud photos to Nextcloud. I do this by mounting the Nextcloud photo directory via WebDAV, so the various album/classifier plugins fire as they should when pictures are added.

Since ... some time ago, this has stopped working, because icloudpd uses .part as the suffix for temporary files. This suffix is hardcoded as a "forbidden suffix" in Nextcloud. I'm not sure if this changed in icloudpd or Nextcloud, but here we are..

Steps to Reproduce

  1. Mount a Nextcloud file share using WebDAV
  2. Use icloudpd to sync images to that folder

Expected Behavior

Syncing "just works"

Actual Behavior

$ sh icloudpd_run.sh                                                                                                       
2025-12-09 02:53:56 DEBUG    Downloading /export/home/ltning/Nextcloud/Photos/iCloud/2025/12/08/IMG_6731.JPG...
2025-12-09 02:53:58 ERROR    IOError while writing file to /export/home/ltning/Nextcloud/Photos/iCloud/2025/12/08/IMG_6731.JPG. You might have run out of disk space, or the file might be too large for your OS. Skipping this file...

From the webdav mount daemon (rclone):

2025/12/09 02:53:58 ERROR : Photos/iCloud/2025/12/08/IMG_6731.JPG.part: WriteFileHandle.New Rcat failed: unchunked simple update failed: ".part" is a forbidden file type.: OCA\DAV\Connector\Sabre\Exception\InvalidPath: 400 Bad Request

Context

I modified download.py to use a different suffix, which has resolved the situation. Perhaps pick something more icloudpd-specific here? How about .icloudpd? :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions