package photos import ( "fmt" "strings" ) // objectKey builds an opaque, album-free storage key for a physical object. // The key never encodes album, photo or any other metadata entity; the mapping // between a key and its photo binding lives only in the metadata layer. The // role segment is cosmetic (for debugging) and is not authoritative. func objectKey(objectID, role, ext string) string { if ext != "" && !strings.HasPrefix(ext, ".") { ext = "." + ext } return fmt.Sprintf("objects/%s/%s%s", objectID, role, ext) }