[{"data":1,"prerenderedAt":595},["ShallowReactive",2],{"nav":3,"footer":12,"docs-nav-en-US":105,"doc-en-US-security\u002Fsigned-urls-ttl":442},{"cta_primary_label":4,"cta_primary_path":7,"cta_secondary_label":8,"cta_secondary_path":11},{"en-US":5,"es-MX":6},"Start free trial","Empezar prueba","https:\u002F\u002Fapp.bovedam.com\u002Fsignup",{"en-US":9,"es-MX":10},"Sign in","Iniciar sesión","https:\u002F\u002Fapp.bovedam.com\u002Flogin",{"bottom_text":13,"language_label":16,"columns":19},{"en-US":14,"es-MX":15},"© 2026 boveDAM. Built for the work that deserves a home.","© 2026 boveDAM. Hecho para el trabajo que merece un lugar.",{"en-US":17,"es-MX":18},"Language","Idioma",[20,49,68,86],{"heading":21,"position":24,"links":25},{"en-US":22,"es-MX":23},"Product","Producto",1,[26,31,37,43],{"label":27,"path":30,"position":24},{"en-US":28,"es-MX":29},"Features","Funciones","\u002Ffeatures",{"label":32,"path":35,"position":36},{"en-US":33,"es-MX":34},"Use cases","Casos de uso","\u002Fuse-cases\u002Fdesigners",2,{"label":38,"path":41,"position":42},{"en-US":39,"es-MX":40},"Pricing","Precios","\u002Fpricing",3,{"label":44,"path":47,"position":48},{"en-US":45,"es-MX":46},"Changelog","Novedades","\u002Fchangelog",4,{"heading":50,"position":36,"links":53},{"en-US":51,"es-MX":52},"Company","Empresa",[54,59,63],{"label":55,"path":58,"position":24},{"en-US":56,"es-MX":57},"About","Acerca de","\u002Fabout",{"label":60,"path":62,"position":36},{"en-US":61,"es-MX":61},"Blog","\u002Fblog",{"label":64,"path":67,"position":42},{"en-US":65,"es-MX":66},"Careers","Empleos","\u002Fcareers",{"heading":69,"position":42,"links":72},{"en-US":70,"es-MX":71},"Developers","Desarrolladores",[73,77,81],{"label":74,"path":76,"position":24},{"en-US":75,"es-MX":75},"Docs","\u002Fdocs",{"label":78,"path":80,"position":36},{"en-US":79,"es-MX":79},"API","\u002Fdocs\u002Fapi",{"label":82,"path":85,"position":42},{"en-US":83,"es-MX":84},"Status","Estado","https:\u002F\u002Fstatus.bovedam.com",{"heading":87,"position":48,"links":89},{"en-US":88,"es-MX":88},"Legal",[90,95,100],{"label":91,"path":94,"position":24},{"en-US":92,"es-MX":93},"Privacy","Privacidad","\u002Fprivacy",{"label":96,"path":99,"position":36},{"en-US":97,"es-MX":98},"Terms","Términos","\u002Fterms",{"label":101,"path":104,"position":42},{"en-US":102,"es-MX":103},"Cookie policy","Política de cookies","\u002Fcookies",[106],{"title":75,"path":76,"stem":107,"children":108,"page":441},"docs",[109],{"title":110,"path":111,"stem":112,"children":113,"order":115,"description":116},"Documentation","\u002Fdocs\u002Fen-us","docs\u002Fen-US\u002Findex",[114,117,150,182,204,242,269,301,323,350,382,409],{"title":110,"path":111,"stem":112,"order":115,"description":116},0,"Reference, how-to, and concept guides for owners, editors, and viewers.",{"title":118,"path":119,"stem":120,"children":121,"order":115,"description":123},"Account and billing","\u002Fdocs\u002Fen-us\u002Faccount","docs\u002Fen-US\u002Faccount\u002Findex",[122,124,129,135,140,145],{"title":118,"path":119,"stem":120,"order":115,"description":123},"Profile, password, plan, invoices, team settings — the part of boveDAM that isn’t a portal.",{"title":125,"path":126,"stem":127,"order":36,"description":128},"Changing your password","\u002Fdocs\u002Fen-us\u002Faccount\u002Fchanging-password","docs\u002Fen-US\u002Faccount\u002Fchanging-password","How to change your account password.",{"title":130,"path":131,"stem":132,"order":133,"description":134},"Invoices and tax info","\u002Fdocs\u002Fen-us\u002Faccount\u002Finvoices","docs\u002Fen-US\u002Faccount\u002Finvoices",5,"How to access invoices and set tax information.",{"title":136,"path":137,"stem":138,"order":42,"description":139},"Plans and upgrades","\u002Fdocs\u002Fen-us\u002Faccount\u002Fplans-upgrades","docs\u002Fen-US\u002Faccount\u002Fplans-upgrades","Overview of boveDAM plans and how to upgrade.",{"title":141,"path":142,"stem":143,"order":48,"description":144},"Storage and limits","\u002Fdocs\u002Fen-us\u002Faccount\u002Fstorage-limits","docs\u002Fen-US\u002Faccount\u002Fstorage-limits","Per-plan storage caps, what counts toward storage, and the recompute job.",{"title":146,"path":147,"stem":148,"order":24,"description":149},"Updating your profile","\u002Fdocs\u002Fen-us\u002Faccount\u002Fupdating-profile","docs\u002Fen-US\u002Faccount\u002Fupdating-profile","How to update your name, email, and profile photo.",{"title":151,"path":152,"stem":153,"children":154,"order":115,"description":156},"Assets","\u002Fdocs\u002Fen-us\u002Fassets","docs\u002Fen-US\u002Fassets\u002Findex",[155,157,162,167,172,177],{"title":151,"path":152,"stem":153,"order":115,"description":156},"What boveDAM accepts, how it previews each format, and how uploads, thumbnails, deletion, and storage quotas behave.",{"title":158,"path":159,"stem":160,"order":133,"description":161},"Deleting and restoring","\u002Fdocs\u002Fen-us\u002Fassets\u002Fdeleting-restoring","docs\u002Fen-US\u002Fassets\u002Fdeleting-restoring","How to delete assets and restore them from the trash.",{"title":163,"path":164,"stem":165,"order":48,"description":166},"File size and quota","\u002Fdocs\u002Fen-us\u002Fassets\u002Ffile-size-quota","docs\u002Fen-US\u002Fassets\u002Ffile-size-quota","Per-plan file size limits and storage quota explained.",{"title":168,"path":169,"stem":170,"order":24,"description":171},"Supported file types","\u002Fdocs\u002Fen-us\u002Fassets\u002Fsupported-file-types","docs\u002Fen-US\u002Fassets\u002Fsupported-file-types","The file formats boveDAM supports for upload, preview, and download.",{"title":173,"path":174,"stem":175,"order":42,"description":176},"Thumbnails and previews","\u002Fdocs\u002Fen-us\u002Fassets\u002Fthumbnails","docs\u002Fen-US\u002Fassets\u002Fthumbnails","How boveDAM generates thumbnails and in-portal previews.",{"title":178,"path":179,"stem":180,"order":36,"description":181},"Uploading single and bulk","\u002Fdocs\u002Fen-us\u002Fassets\u002Fuploading","docs\u002Fen-US\u002Fassets\u002Fuploading","How to upload one or many assets at once.",{"title":183,"path":184,"stem":185,"children":186,"order":115,"description":188},"Bilingual portals","\u002Fdocs\u002Fen-us\u002Fbilingual","docs\u002Fen-US\u002Fbilingual\u002Findex",[187,189,194,199],{"title":183,"path":184,"stem":185,"order":115,"description":188},"Every surface in boveDAM renders in English or Mexican Spanish. How to set your personal language and a portal’s default for clients.",{"title":190,"path":191,"stem":192,"order":36,"description":193},"Per-portal default locale","\u002Fdocs\u002Fen-us\u002Fbilingual\u002Fper-portal-locale","docs\u002Fen-US\u002Fbilingual\u002Fper-portal-locale","Setting a default language per portal, independently of the workspace default.",{"title":195,"path":196,"stem":197,"order":24,"description":198},"Setting your language","\u002Fdocs\u002Fen-us\u002Fbilingual\u002Fsetting-your-language","docs\u002Fen-US\u002Fbilingual\u002Fsetting-your-language","How to set your preferred language in boveDAM.",{"title":200,"path":201,"stem":202,"order":42,"description":203},"What renders in which language","\u002Fdocs\u002Fen-us\u002Fbilingual\u002Fwhat-renders-where","docs\u002Fen-US\u002Fbilingual\u002Fwhat-renders-where","How boveDAM resolves which language to render for a portal visitor.",{"title":205,"path":206,"stem":207,"children":208,"order":115,"description":210},"Brand modules","\u002Fdocs\u002Fen-us\u002Fbrand-modules","docs\u002Fen-US\u002Fbrand-modules\u002Findex",[209,211,216,222,227,232,237],{"title":205,"path":206,"stem":207,"order":115,"description":210},"Logos, colors, typography, and brand guidelines — how each module renders, what formats it accepts, and when to add a custom module.",{"title":212,"path":213,"stem":214,"order":48,"description":215},"Brand Guidelines","\u002Fdocs\u002Fen-us\u002Fbrand-modules\u002Fbrand-guidelines","docs\u002Fen-US\u002Fbrand-modules\u002Fbrand-guidelines","How to manage and share brand guidelines documents.",{"title":217,"path":218,"stem":219,"order":220,"description":221},"Brand structure settings","\u002Fdocs\u002Fen-us\u002Fbrand-modules\u002Fbrand-structure","docs\u002Fen-US\u002Fbrand-modules\u002Fbrand-structure",6,"Configuring the overall brand structure for a portal.",{"title":223,"path":224,"stem":225,"order":36,"description":226},"Colors and color scales","\u002Fdocs\u002Fen-us\u002Fbrand-modules\u002Fcolors","docs\u002Fen-US\u002Fbrand-modules\u002Fcolors","Tokens, value formats, web color scale parent\u002Fchild relationship.",{"title":228,"path":229,"stem":230,"order":133,"description":231},"Custom modules","\u002Fdocs\u002Fen-us\u002Fbrand-modules\u002Fcustom-modules","docs\u002Fen-US\u002Fbrand-modules\u002Fcustom-modules","When and how to add custom modules — including the rationale for not having an inline +Add CTA.",{"title":233,"path":234,"stem":235,"order":24,"description":236},"Logos","\u002Fdocs\u002Fen-us\u002Fbrand-modules\u002Flogos","docs\u002Fen-US\u002Fbrand-modules\u002Flogos","The logo card model — multiple formats, type, status, preview backgrounds.",{"title":238,"path":239,"stem":240,"order":42,"description":241},"Typography","\u002Fdocs\u002Fen-us\u002Fbrand-modules\u002Ftypography","docs\u002Fen-US\u002Fbrand-modules\u002Ftypography","Specimens, file formats, fallback stacks.",{"title":243,"path":244,"stem":245,"children":246,"order":115,"description":248},"Coming soon","\u002Fdocs\u002Fen-us\u002Fcoming-soon","docs\u002Fen-US\u002Fcoming-soon\u002Findex",[247,249,254,259,264],{"title":243,"path":244,"stem":245,"order":115,"description":248},"What’s on the roadmap: API and webhooks, custom domains, white-label. Documented now so you can plan around it.",{"title":250,"path":251,"stem":252,"order":24,"description":253},"API and webhooks","\u002Fdocs\u002Fen-us\u002Fcoming-soon\u002Fapi-webhooks","docs\u002Fen-US\u002Fcoming-soon\u002Fapi-webhooks","Programmatic access to boveDAM — coming soon.",{"title":255,"path":256,"stem":257,"order":36,"description":258},"Custom domains","\u002Fdocs\u002Fen-us\u002Fcoming-soon\u002Fcustom-domains","docs\u002Fen-US\u002Fcoming-soon\u002Fcustom-domains","Serve your portals from your own domain — coming soon.",{"title":260,"path":261,"stem":262,"order":48,"description":263},"SSO","\u002Fdocs\u002Fen-us\u002Fcoming-soon\u002Fsso","docs\u002Fen-US\u002Fcoming-soon\u002Fsso","Single sign-on for enterprise workspaces — coming soon.",{"title":265,"path":266,"stem":267,"order":42,"description":268},"White-label","\u002Fdocs\u002Fen-us\u002Fcoming-soon\u002Fwhite-label","docs\u002Fen-US\u002Fcoming-soon\u002Fwhite-label","Remove boveDAM branding from portals — coming soon.",{"title":270,"path":271,"stem":272,"children":273,"order":115,"description":275},"Getting started","\u002Fdocs\u002Fen-us\u002Fgetting-started","docs\u002Fen-US\u002Fgetting-started\u002Findex",[274,276,281,286,291,296],{"title":270,"path":271,"stem":272,"order":115,"description":275},"How to open an account, build your first portal, and share it with a client. The shortest path from zero to a brand your team can find.",{"title":277,"path":278,"stem":279,"order":36,"description":280},"Build your first portal","\u002Fdocs\u002Fen-us\u002Fgetting-started\u002Fbuild-your-first-portal","docs\u002Fen-US\u002Fgetting-started\u002Fbuild-your-first-portal","The 4-screen flow: name, slug, cover, defaults.",{"title":282,"path":283,"stem":284,"order":24,"description":285},"Create your account","\u002Fdocs\u002Fen-us\u002Fgetting-started\u002Fcreate-your-account","docs\u002Fen-US\u002Fgetting-started\u002Fcreate-your-account","Step-by-step from signup to verified account.",{"title":287,"path":288,"stem":289,"order":48,"description":290},"Invite a member","\u002Fdocs\u002Fen-us\u002Fgetting-started\u002Finvite-a-member","docs\u002Fen-US\u002Fgetting-started\u002Finvite-a-member","Add team members to your workspace.",{"title":292,"path":293,"stem":294,"order":133,"description":295},"Share with a client","\u002Fdocs\u002Fen-us\u002Fgetting-started\u002Fshare-with-a-client","docs\u002Fen-US\u002Fgetting-started\u002Fshare-with-a-client","How to share a portal link with a client.",{"title":297,"path":298,"stem":299,"order":42,"description":300},"Upload your first asset","\u002Fdocs\u002Fen-us\u002Fgetting-started\u002Fupload-your-first-asset","docs\u002Fen-US\u002Fgetting-started\u002Fupload-your-first-asset","How upload, processing, and ready states work.",{"title":302,"path":303,"stem":304,"children":305,"order":115,"description":307},"Library and folders","\u002Fdocs\u002Fen-us\u002Flibrary","docs\u002Fen-US\u002Flibrary\u002Findex",[306,308,313,318],{"title":302,"path":303,"stem":304,"order":115,"description":307},"Folders for the brand work that doesn’t fit a token. Default sections, nesting depth, renaming, and bulk organization.",{"title":309,"path":310,"stem":311,"order":24,"description":312},"Default sections","\u002Fdocs\u002Fen-us\u002Flibrary\u002Fdefault-sections","docs\u002Fen-US\u002Flibrary\u002Fdefault-sections","How the default library sections work in a new portal.",{"title":314,"path":315,"stem":316,"order":36,"description":317},"Folders, sub-folders, and depth","\u002Fdocs\u002Fen-us\u002Flibrary\u002Ffolders","docs\u002Fen-US\u002Flibrary\u002Ffolders","How to organize assets using folders and sub-folders.",{"title":319,"path":320,"stem":321,"order":42,"description":322},"Renaming, hiding, reordering","\u002Fdocs\u002Fen-us\u002Flibrary\u002Frenaming-reordering","docs\u002Fen-US\u002Flibrary\u002Frenaming-reordering","How to rename, hide, and reorder sections and folders.",{"title":324,"path":325,"stem":326,"children":327,"order":115,"description":329},"Members and roles","\u002Fdocs\u002Fen-us\u002Fmembers","docs\u002Fen-US\u002Fmembers\u002Findex",[328,330,335,340,345],{"title":324,"path":325,"stem":326,"order":115,"description":329},"Owner, editor, viewer — three roles that cover every reason someone needs into a portal. How to invite, remove, and switch roles.",{"title":331,"path":332,"stem":333,"order":36,"description":334},"Inviting members","\u002Fdocs\u002Fen-us\u002Fmembers\u002Finviting-members","docs\u002Fen-US\u002Fmembers\u002Finviting-members","How to invite members to a portal.",{"title":336,"path":337,"stem":338,"order":24,"description":339},"Owner, editor, viewer","\u002Fdocs\u002Fen-us\u002Fmembers\u002Fowner-editor-viewer","docs\u002Fen-US\u002Fmembers\u002Fowner-editor-viewer","Capability matrix for the three roles, scoped at the portal level.",{"title":341,"path":342,"stem":343,"order":42,"description":344},"Removing members","\u002Fdocs\u002Fen-us\u002Fmembers\u002Fremoving-members","docs\u002Fen-US\u002Fmembers\u002Fremoving-members","How to remove a member from a portal.",{"title":346,"path":347,"stem":348,"order":48,"description":349},"Workspace owner privileges","\u002Fdocs\u002Fen-us\u002Fmembers\u002Fworkspace-owner","docs\u002Fen-US\u002Fmembers\u002Fworkspace-owner","What the workspace owner can do that other roles cannot.",{"title":351,"path":352,"stem":353,"children":354,"order":115,"description":356},"Portals","\u002Fdocs\u002Fen-us\u002Fportals","docs\u002Fen-US\u002Fportals\u002Findex",[355,357,362,367,372,377],{"title":351,"path":352,"stem":353,"order":115,"description":356},"A portal is one brand’s home in boveDAM. How to create one, set its cover and visibility, and choose between login or password access.",{"title":358,"path":359,"stem":360,"order":36,"description":361},"Cover image and logo","\u002Fdocs\u002Fen-us\u002Fportals\u002Fcover-image-and-logo","docs\u002Fen-US\u002Fportals\u002Fcover-image-and-logo","Setting the portal cover image and brand logo.",{"title":363,"path":364,"stem":365,"order":48,"description":366},"Default locale","\u002Fdocs\u002Fen-us\u002Fportals\u002Fdefault-locale","docs\u002Fen-US\u002Fportals\u002Fdefault-locale","Setting the default language for a portal.",{"title":368,"path":369,"stem":370,"order":24,"description":371},"Portal anatomy","\u002Fdocs\u002Fen-us\u002Fportals\u002Fportal-anatomy","docs\u002Fen-US\u002Fportals\u002Fportal-anatomy","The structure of a portal: cover, sections, assets, and settings.",{"title":373,"path":374,"stem":375,"order":133,"description":376},"Publishing and unpublishing","\u002Fdocs\u002Fen-us\u002Fportals\u002Fpublishing","docs\u002Fen-US\u002Fportals\u002Fpublishing","How to publish and unpublish a portal.",{"title":378,"path":379,"stem":380,"order":42,"description":381},"Visibility: private vs password","\u002Fdocs\u002Fen-us\u002Fportals\u002Fvisibility","docs\u002Fen-US\u002Fportals\u002Fvisibility","When to use private login vs password-gated portals, and the security baseline.",{"title":383,"path":384,"stem":385,"children":386,"order":115,"description":388},"Security and privacy","\u002Fdocs\u002Fen-us\u002Fsecurity","docs\u002Fen-US\u002Fsecurity\u002Findex",[387,389,394,399,404],{"title":383,"path":384,"stem":385,"order":115,"description":388},"How boveDAM stores files, signs every download, and handles deletion. Written for the people who need to answer a security review.",{"title":390,"path":391,"stem":392,"order":48,"description":393},"Data export","\u002Fdocs\u002Fen-us\u002Fsecurity\u002Fdata-export","docs\u002Fen-US\u002Fsecurity\u002Fdata-export","How to export your workspace data from boveDAM.",{"title":395,"path":396,"stem":397,"order":42,"description":398},"Deletion and retention","\u002Fdocs\u002Fen-us\u002Fsecurity\u002Fdeletion-retention","docs\u002Fen-US\u002Fsecurity\u002Fdeletion-retention","How deletion and data retention work in boveDAM.",{"title":400,"path":401,"stem":402,"order":24,"description":403},"How storage works","\u002Fdocs\u002Fen-us\u002Fsecurity\u002Fhow-storage-works","docs\u002Fen-US\u002Fsecurity\u002Fhow-storage-works","Where files are stored and how boveDAM protects them.",{"title":405,"path":406,"stem":407,"order":36,"description":408},"Signed URLs and TTL","\u002Fdocs\u002Fen-us\u002Fsecurity\u002Fsigned-urls-ttl","docs\u002Fen-US\u002Fsecurity\u002Fsigned-urls-ttl","How the 5-minute TTL works for signed asset URLs.",{"title":410,"path":411,"stem":412,"children":413,"order":115,"description":415},"Sharing and downloads","\u002Fdocs\u002Fen-us\u002Fsharing","docs\u002Fen-US\u002Fsharing\u002Findex",[414,416,421,426,431,436],{"title":410,"path":411,"stem":412,"order":115,"description":415},"Two ways to give someone access: a private portal that needs a login, or a public link gated by a password. Plus how downloads behave in each.",{"title":417,"path":418,"stem":419,"order":24,"description":420},"Login-gated portals","\u002Fdocs\u002Fen-us\u002Fsharing\u002Flogin-gated","docs\u002Fen-US\u002Fsharing\u002Flogin-gated","How login-gated access works for clients.",{"title":422,"path":423,"stem":424,"order":36,"description":425},"Password-gated portals","\u002Fdocs\u002Fen-us\u002Fsharing\u002Fpassword-gated","docs\u002Fen-US\u002Fsharing\u002Fpassword-gated","How password-gated access works.",{"title":427,"path":428,"stem":429,"order":133,"description":430},"Signed URLs and security","\u002Fdocs\u002Fen-us\u002Fsharing\u002Fsigned-urls","docs\u002Fen-US\u002Fsharing\u002Fsigned-urls","The 5-minute TTL, checksum binding, and why signed URLs protect your assets.",{"title":432,"path":433,"stem":434,"order":42,"description":435},"Single asset download","\u002Fdocs\u002Fen-us\u002Fsharing\u002Fsingle-asset-download","docs\u002Fen-US\u002Fsharing\u002Fsingle-asset-download","How single file download works for clients.",{"title":437,"path":438,"stem":439,"order":48,"description":440},"ZIP downloads","\u002Fdocs\u002Fen-us\u002Fsharing\u002Fzip-downloads","docs\u002Fen-US\u002Fsharing\u002Fzip-downloads","How to enable and use ZIP bulk downloads.",false,{"doc":443,"fallback":441},{"id":444,"title":405,"body":445,"description":408,"extension":589,"meta":590,"navigation":591,"order":36,"path":406,"section":383,"seo":592,"stem":407,"updated":593,"__hash__":594},"docs_en\u002Fdocs\u002Fen-US\u002Fsecurity\u002Fsigned-urls-ttl.md",{"type":446,"value":447,"toc":582},"minimark",[448,452,457,465,468,478,486,490,493,508,511,514,518,521,531,534,538,541,561,565,568,571],[449,450,451],"p",{},"Every file in boveDAM is delivered through a signed URL — a temporary, authenticated link that grants access to a single asset for a limited window. This page explains what signed URLs are, why boveDAM uses them, and what happens when one expires.",[453,454,456],"h2",{"id":455},"what-a-signed-url-is","What a signed URL is",[449,458,459,460,464],{},"A signed URL is a regular HTTPS URL with additional query parameters that act as a cryptographic proof of authorization. When boveDAM generates a signed URL, it takes the target file path and the current timestamp, and creates a ",[461,462,463],"strong",{},"SHA-256 HMAC signature"," using a secret key that only boveDAM's servers hold.",[449,466,467],{},"The signature is embedded in the URL itself. When the URL is requested, the storage layer verifies:",[469,470,471,475],"ol",{},[472,473,474],"li",{},"The signature matches the file path — the URL cannot be repurposed for a different file",[472,476,477],{},"The URL has not exceeded its time-to-live — it was generated within the last 5 minutes",[449,479,480,481,485],{},"If either check fails, the request is rejected with a ",[482,483,484],"code",{},"403 Forbidden"," response. No file data is returned.",[453,487,489],{"id":488},"why-5-minutes","Why 5 minutes?",[449,491,492],{},"The 5-minute TTL is calibrated to balance usability and security:",[494,495,496,502],"ul",{},[472,497,498,501],{},[461,499,500],{},"Long enough to complete a download."," Even a large file on a slow connection can typically be downloaded within the 5-minute window once the URL is generated. The clock starts when you click the asset in the portal, not when the download finishes.",[472,503,504,507],{},[461,505,506],{},"Short enough to prevent casual sharing."," A URL copied from a network inspector, browser history, or download manager will expire before most people have a chance to forward it.",[449,509,510],{},"Longer TTLs — hours or days — would undermine the portal as an access control boundary. If a client could share a raw file URL that works for 24 hours, there would be no reason for their colleagues to request portal access. boveDAM's model is that access is granted at the portal level and revoked at the portal level.",[449,512,513],{},"If a download fails because the URL expired mid-transfer (unusual, but possible on very large files or very slow connections), simply clicking the asset again in the portal generates a fresh signed URL.",[453,515,517],{"id":516},"expiry-behavior","Expiry behavior",[449,519,520],{},"When a signed URL expires, any request to that URL — in a browser, a download manager, or a direct HTTP client — returns:",[522,523,528],"pre",{"className":524,"code":526,"language":527},[525],"language-text","HTTP 403 Forbidden\n","text",[482,529,526],{"__ignoreMap":530},"",[449,532,533],{},"The URL is not redirected, updated, or given a grace period. It simply stops working. The file itself is unaffected — it remains in the portal and a new signed URL can be generated at any time by accessing the asset normally through the portal.",[453,535,537],{"id":536},"implications-for-link-sharing","Implications for link sharing",[449,539,540],{},"Because signed URLs expire within minutes, they cannot be used as permanent file links. This is by design, but it has some practical implications to be aware of:",[494,542,543,549,555],{},[472,544,545,548],{},[461,546,547],{},"Network inspector copies:"," If a developer or technically savvy client copies an asset URL from their browser's network inspector tab, that URL will expire within 5 minutes of when the portal page loaded.",[472,550,551,554],{},[461,552,553],{},"Download manager resume:"," Some download managers save the URL and resume from it later. A paused download that resumes after the TTL window will fail. Restarting the download from the portal generates a new URL.",[472,556,557,560],{},[461,558,559],{},"Programmatic access:"," If you are building an integration that needs to reference boveDAM assets, use the portal API to fetch fresh signed URLs on demand rather than caching them.",[453,562,564],{"id":563},"signed-urls-on-public-portals","Signed URLs on public portals",[449,566,567],{},"Even portals that are publicly accessible (no login required) still use signed URLs for file delivery. \"Public\" means anyone can view the portal and its asset listing without authenticating — but the files themselves are never served from a permanent, unprotected URL.",[449,569,570],{},"This ensures that even if a public portal URL is indexed by a search engine or shared widely, the underlying files remain protected by the same TTL mechanism.",[449,572,573,574,578,579],{},"See also: ",[575,576,400],"a",{"href":577},"\u002Fdocs\u002Fsecurity\u002Fhow-storage-works"," · ",[575,580,395],{"href":581},"\u002Fdocs\u002Fsecurity\u002Fdeletion-retention",{"title":530,"searchDepth":36,"depth":36,"links":583},[584,585,586,587,588],{"id":455,"depth":36,"text":456},{"id":488,"depth":36,"text":489},{"id":516,"depth":36,"text":517},{"id":536,"depth":36,"text":537},{"id":563,"depth":36,"text":564},"md",{},true,{"title":405,"description":408},"2026-05-06","wc14-xRzxFlrm63taUTczbfnCUs5VZELnTFgcPSfVEw",1780171532565]