Stockage objet : COS, OSS, S3
Le stockage objet est pour ceux qui ne porteront pas de disque mais refusent encore de remettre les originaux à une société photo. La page de déclarations in-app est directe : il n’y a pas de serveur Azalea ; vous choisissez le magasin.
Ce que le formulaire persiste réellement
Le nom d’affichage est le vôtre. Le provider se choisit au point d’entrée et est en lecture seule dans le formulaire. Bucket, endpoint, region, root, access key, secret key. Les changements debounce puis upsert. Les secrets vont dans le Keychain iOS ou EncryptedSharedPreferences Android, pas dans un fichier de préférences lisible par tous.
Les passerelles S3-compatibles marchent si list/put se comportent. Ne stockez pas un jeton de session court comme s’il s’agissait d’une clé longue sauf si vous connaissez l’expiration.
Les setups anglais que nous avons réellement faits tourner en avril 2026 ont utilisé S3 Standard dans us-west-2, pas COS. Le client se fiche du vendeur, seulement de la signature et de la disposition des object key.
Forme de l’index
index/{deviceId}/manifest.json plus index.sqlite. Les object key correspondent à iOS, donc un second client pointé vers le même seau peut le revendiquer. Android mappe une ligne MediaStore vers une ressource et ne peut pas réutiliser les valeurs local_identifier iOS. Après une revendication, le matching est par contenu, pas une reconstruction 1:1 de l’ancien album Moments.
Contrôle de coût approximatif
Aux prix liste du 8 mars 2026, 214,7 Go sur S3 Standard faisait environ 59 $ / an. Le volume PUT de dizaines de milliers de photos est réel mais généralement sous le stockage. Si la facture fait peur, un disque USB est l’autre colonne du cas de coût.
Premières choses à vérifier en cas d’échec
- Une région fausse apparaît à la première liste comme erreur de signature ou 301.
- Un sous-utilisateur avec GET mais sans PUT meurt à la première photo.
- Si l’OS tue la tâche en arrière-plan, la progression n’est pas perdue ; les object key non terminées restent dans l’index. Ouvrir l’app continue.