nextcloud / nextcloud/ios

⚠️ Critical DNG Loss Bug – iOS client uploads preview JPEG only / ⚠️ DNG 致命丢失问题 – iOS 客户端仅上传预览图 / ⚠️ Критическая ошибка DNG – iOS-клиент загружает только превью

Open
#3,515 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Swift
Stars
2.5k
Forks
1k
Avg merge
2d 18h
Merged PRs (30d)
13

Description

English

Problem
When uploading Apple ProRAW / DNG files via the iOS Nextcloud client, the app sends only a 3-4 MB preview JPEG while keeping the “.dng” filename. The original 20-30 MB RAW data is lost forever. This breaks the core promise of original-quality backup and can mislead users into thinking the server compresses their photos.

Steps to reproduce

  1. Shoot a ProRAW photo on any iPhone 14/15 running iOS 17/18.
  2. Enable automatic upload in the Nextcloud iOS app.
  3. Compare file size and hash between the device copy and the server copy.

Expected: identical size and hash.
Actual: server file ≈ 3 MB, hash mismatch, RAW data gone.

Impact: severe data-loss threat; must be tagged critical and fixed by switching to PHAssetResourceManager to fetch the .alternatePhoto resource.


中文

问题描述
在 iOS 客户端自动上传 ProRAW / DNG 时,应用仅上传 3-4 MB 的 JPEG 预览,却仍保留 .dng 扩展名,20-30 MB 的原始 RAW 数据彻底丢失。这直接违背了 Nextcloud “原图备份” 的核心诉求,并容易让用户误以为是服务器压缩所致。

复现步骤

  1. 用 iPhone 14/15(iOS 17/18)拍摄一张 ProRAW。
  2. 打开 Nextcloud iOS 自动上传。
  3. 对比手机与服务器上的文件大小 / 哈希。

期望结果:大小、校验一致。
实际结果:服务器文件仅 ~3 MB,哈希不同,原片缺失。

影响:严重的数据完整性事故,亟需打上 critical 标签,并改用 PHAssetResourceManager 读取 .alternatePhoto 原件。


Русский

Проблема
При автозагрузке файлов ProRAW / DNG через клиент Nextcloud для iOS приложение отправляет только JPEG-превью размером 3-4 МБ, сохраняя расширение .dng. Оригинальные RAW-данные (≈ 25 МБ) безвозвратно теряются. Это нарушает базовое обещание «резервного копирования в исходном качестве» и вводит пользователей в заблуждение.

Шаги воспроизведения

  1. Снять фото ProRAW на iPhone 14/15 (iOS 17/18).
  2. Включить автозагрузку в клиенте Nextcloud для iOS.
  3. Сравнить размер и хэш локального файла и копии на сервере.

Ожидаемо: размеры и хэши совпадают.
Фактически: на сервере ~3 МБ, хэш другой, RAW утерян.

Критичность: угроза потери данных. Просим пометить critical и реализовать загрузку оригинала через PHAssetResourceManager.

⚠️ 严重质疑:难道团队里没有人真正用过 iPhone 的 ProRAW 吗?

各位开发者好,

这条 致命 BUG 已经挂了数月:

  • iOS 客户端在自动上传 DNG / ProRAW 时,仅传预览 JPEG,导致原片彻底丢失。
  • 自动备份这一核心功能对专业 / 半专业用户形同虚设。
  • 本 Issue (#3369) 自三月起就被多位用户确认,却始终停留在 Open,标签也不是 critical

一个以「私有云备份」为卖点的应用,却把 20 MB 的 RAW 原片吞成 3 MB 的失真垃圾,这事还能不算严重吗?

我要郑重发问:

  1. 团队里真的没有任何人用 iPhone 拍 RAW 吗?
  2. 难道没人意识到这会让用户以为「服务器偷偷压缩文件」并失去对 Nextcloud 的信任?
  3. 为何没有明确的修复里程碑或 PR?至少把标签改成 bug / critical 吧!

建议立刻采取以下行动:

  • 优先合并 / 编写 基于 PHAssetResourceManager 的上传实现,确保获取 .alternatePhoto 资源,而非 requestImageData 的缩略图。
  • 在下一个版本(6.7.x 或更快的补丁)中 明确写入 Changelog“Fixed original DNG/ProRAW upload; no more preview-only files.”
  • 更新文档,提示受影响版本的用户如何重新上传原片、避免数据丢失。

请正视这个问题,这不是 UI 小缺陷,而是用户数据完整性灾难。
希望立即标注为 severity: critical 并安排优先修复。

期待团队的实质性进展。

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the iOS automatic-upload path that handles ProRAW/DNG assets, starting with how it obtains image data. Verify whether the upload uses the original resource rather than a preview, and investigate PHAssetResourceManager with the .alternatePhoto resource. Done means the server copy matches the device file's size and hash; reproduce with an iPhone ProRAW file to verify.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, swift
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.