[{"data":1,"prerenderedAt":627},["ShallowReactive",2],{"docs-nav:docs_en":3,"docs-page:\u002Fen\u002Fdocs\u002Fconcepts\u002Fstorage":158,"docs-surround:\u002Fen\u002Fdocs\u002Fconcepts\u002Fstorage":622},[4],{"title":5,"path":6,"stem":7,"children":8,"page":74},"En","\u002Fen","en",[9],{"title":10,"path":11,"stem":12,"children":13,"page":74},"Docs","\u002Fen\u002Fdocs","en\u002Fdocs",[14,75,134],{"title":15,"icon":16,"path":17,"stem":18,"children":19,"page":74},"Guides","i-lucide-book-open","\u002Fen\u002Fdocs\u002Fguides","en\u002Fdocs\u002F1.guides",[20,25,30,35,40,44,49,54,59,64,69],{"title":21,"path":22,"stem":23,"icon":24},"Introduction","\u002Fen\u002Fdocs\u002Fguides\u002Fintroduction","en\u002Fdocs\u002F1.guides\u002F01.introduction","i-lucide-info",{"title":26,"path":27,"stem":28,"icon":29},"Quick start","\u002Fen\u002Fdocs\u002Fguides\u002Fquick-start","en\u002Fdocs\u002F1.guides\u002F02.quick-start","i-lucide-play",{"title":31,"path":32,"stem":33,"icon":34},"Add the office computers","\u002Fen\u002Fdocs\u002Fguides\u002Foffice","en\u002Fdocs\u002F1.guides\u002F03.office","i-lucide-building-2",{"title":36,"path":37,"stem":38,"icon":39},"Rendering on GPU Rental Platforms","\u002Fen\u002Fdocs\u002Fguides\u002Fcloud","en\u002Fdocs\u002F1.guides\u002F04.cloud","i-lucide-cloud",{"title":41,"path":42,"stem":43},"Configuring Cloudflare R2 Storage","\u002Fen\u002Fdocs\u002Fguides\u002Fr2","en\u002Fdocs\u002F1.guides\u002F05.r2",{"title":45,"path":46,"stem":47,"icon":48},"Run the host on a NAS","\u002Fen\u002Fdocs\u002Fguides\u002Fnas","en\u002Fdocs\u002F1.guides\u002F06.nas","i-lucide-hard-drive",{"title":50,"path":51,"stem":52,"icon":53},"Devices in different places","\u002Fen\u002Fdocs\u002Fguides\u002Fremote","en\u002Fdocs\u002F1.guides\u002F07.remote","i-lucide-globe",{"title":55,"path":56,"stem":57,"icon":58},"Get the film","\u002Fen\u002Fdocs\u002Fguides\u002Ffilm","en\u002Fdocs\u002F1.guides\u002F08.film","i-lucide-film",{"title":60,"path":61,"stem":62,"icon":63},"When files change","\u002Fen\u002Fdocs\u002Fguides\u002Fupdate","en\u002Fdocs\u002F1.guides\u002F09.update","i-lucide-refresh-cw",{"title":65,"path":66,"stem":67,"icon":68},"When the host fails or moves","\u002Fen\u002Fdocs\u002Fguides\u002Fhost","en\u002Fdocs\u002F1.guides\u002F10.host","i-lucide-server-cog",{"title":70,"path":71,"stem":72,"icon":73},"FAQ","\u002Fen\u002Fdocs\u002Fguides\u002Ffaq","en\u002Fdocs\u002F1.guides\u002F11.faq","i-lucide-circle-help",false,{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":74},"Concepts","i-lucide-box","\u002Fen\u002Fdocs\u002Fconcepts","en\u002Fdocs\u002F2.concepts",[81,86,90,95,100,105,109,114,119,124,129],{"title":82,"path":83,"stem":84,"icon":85},"Workspace and host","\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace","en\u002Fdocs\u002F2.concepts\u002F01.workspace","i-lucide-network",{"title":87,"path":88,"stem":89,"icon":48},"Store","\u002Fen\u002Fdocs\u002Fconcepts\u002Fstorage","en\u002Fdocs\u002F2.concepts\u002F02.storage",{"title":91,"path":92,"stem":93,"icon":94},"Assets, Unpacking & On-Demand Pull","\u002Fen\u002Fdocs\u002Fconcepts\u002Fassets","en\u002Fdocs\u002F2.concepts\u002F03.assets","i-lucide-images",{"title":96,"path":97,"stem":98,"icon":99},"Projects, tasks and versions","\u002Fen\u002Fdocs\u002Fconcepts\u002Ftasks","en\u002Fdocs\u002F2.concepts\u002F04.tasks","i-lucide-list-checks",{"title":101,"path":102,"stem":103,"icon":104},"Shots and chunks","\u002Fen\u002Fdocs\u002Fconcepts\u002Fshots","en\u002Fdocs\u002F2.concepts\u002F05.shots","i-lucide-clapperboard",{"title":106,"path":107,"stem":108,"icon":58},"Films","\u002Fen\u002Fdocs\u002Fconcepts\u002Ffilm","en\u002Fdocs\u002F2.concepts\u002F06.film",{"title":110,"path":111,"stem":112,"icon":113},"Blender and FFmpeg","\u002Fen\u002Fdocs\u002Fconcepts\u002Fruntimes","en\u002Fdocs\u002F2.concepts\u002F07.runtimes","i-lucide-package",{"title":115,"path":116,"stem":117,"icon":118},"Joining and access","\u002Fen\u002Fdocs\u002Fconcepts\u002Fjoining","en\u002Fdocs\u002F2.concepts\u002F08.joining","i-lucide-key-round",{"title":120,"path":121,"stem":122,"icon":123},"Render seats","\u002Fen\u002Fdocs\u002Fconcepts\u002Fseats","en\u002Fdocs\u002F2.concepts\u002F09.seats","i-lucide-gauge",{"title":125,"path":126,"stem":127,"icon":128},"Backup and takeover","\u002Fen\u002Fdocs\u002Fconcepts\u002Fbackup","en\u002Fdocs\u002F2.concepts\u002F10.backup","i-lucide-life-buoy",{"title":130,"path":131,"stem":132,"icon":133},"Plugins","\u002Fen\u002Fdocs\u002Fconcepts\u002Fplugins","en\u002Fdocs\u002F2.concepts\u002F11.plugins","i-lucide-puzzle",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":74},"Reference","i-lucide-library","\u002Fen\u002Fdocs\u002Freference","en\u002Fdocs\u002F3.reference",[140,145,150,154],{"title":141,"path":142,"stem":143,"icon":144},"Command line","\u002Fen\u002Fdocs\u002Freference\u002Fcli","en\u002Fdocs\u002F3.reference\u002F1.cli","i-lucide-terminal",{"title":146,"path":147,"stem":148,"icon":149},"Configuration","\u002Fen\u002Fdocs\u002Freference\u002Fconfig","en\u002Fdocs\u002F3.reference\u002F2.config","i-lucide-sliders",{"title":151,"path":152,"stem":153},"HTTP API","\u002Fen\u002Fdocs\u002Freference\u002Fapi","en\u002Fdocs\u002F3.reference\u002F3.api",{"title":155,"path":156,"stem":157},"Plugin development","\u002Fen\u002Fdocs\u002Freference\u002Fplugins","en\u002Fdocs\u002F3.reference\u002F4.plugins",{"id":159,"title":87,"body":160,"description":616,"extension":617,"meta":618,"navigation":619,"path":88,"seo":620,"stem":89,"__hash__":621},"docs_en\u002Fen\u002Fdocs\u002F2.concepts\u002F02.storage.md",{"type":161,"value":162,"toc":604},"minimark",[163,167,182,190,200,206,225,229,232,301,304,338,344,348,355,387,391,394,397,447,458,462,465,468,496,499,502,519,532,539,543,546,555,573,590],[164,165,87],"h2",{"id":166},"store",[168,169,170,171,176,177,181],"p",{},"The store is where a ",[172,173,175],"a",{"href":174},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace#workspace","workspace"," keeps its files: submitted Blend files and textures, fragments and films, previews, ",[172,178,180],{"href":179},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fruntimes#resource-packs","resource packs"," and database backups.",[168,183,184,185,189],{},"Devices read and write the store directly, without going through the ",[172,186,188],{"href":187},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace#host","host",". The host only tells devices where the store is and which keys to use. Records such as projects and tasks aren't in the store. They are in the host's database.",[191,192,193,197],"ul",{},[194,195,196],"li",{},"Identical files are stored only once. If you change one texture and submit again, only that texture is uploaded.",[194,198,199],{},"A store folder belongs to one workspace only. The folder you choose when creating a workspace must be either empty or already this workspace's store. If it contains other files, it is refused. Use a subfolder instead.",[168,201,202,203,205],{},"To learn how projects and textures are unpacked, deduplicated and pulled on demand, see ",[172,204,91],{"href":92},".",[168,207,208,209,213,214,216,217,220,221,224],{},"View and change the store under ",[210,211,212],"ui",{},"Workspace details"," → ",[210,215,87],{},". ",[210,218,219],{},"Edit connection…"," only changes the path, address or keys and doesn't move files. ",[210,222,223],{},"Move to…"," moves all the files to a new place.",[164,226,228],{"id":227},"choosing-a-store","Choosing a store",[168,230,231],{},"When you create a workspace, you choose one of three. You can't skip it:",[233,234,235,250],"table",{},[236,237,238],"thead",{},[239,240,241,244,247],"tr",{},[242,243,87],"th",{},[242,245,246],{},"Good for",[242,248,249],{},"Notes",[251,252,253,272,288],"tbody",{},[239,254,255,261,264],{},[256,257,258],"td",{},[210,259,260],{},"Shared folder",[256,262,263],{},"All devices in the office, with a NAS",[256,265,266,267,271],{},"Each device reads and writes directly through the shared path (such as ",[268,269,270],"code",{},"\\\\NAS\\danio",")",[239,273,274,279,282],{},[256,275,276],{},[210,277,278],{},"S3",[256,280,281],{},"Devices spread across places, with render machines in the cloud",[256,283,284,285],{},"Cloudflare R2 (recommended, zero egress fees), AWS, MinIO, see ",[172,286,287],{"href":42},"Configuring R2",[239,289,290,295,298],{},[256,291,292],{},[210,293,294],{},"This device",[256,296,297],{},"Using this one computer only",[256,299,300],{},"Other devices can't submit or render",[168,302,303],{},"If all your devices are in the office, choose a shared folder. If you have rented cloud servers, choose S3.",[191,305,306,319,326],{},[194,307,308,309,312,313,213,316,205],{},"If you choose a shared folder when creating the workspace, the host turns on ",[210,310,311],{},"Local discovery"," automatically, and office computers can find it under ",[210,314,315],{},"Join a workspace",[210,317,318],{},"Local network",[194,320,321,322,325],{},"With S3, you can fill in a separate pair of ",[210,323,324],{},"Worker keys",". Create them in your storage service with fewer permissions, and devices that only render get this pair.",[194,327,328,329,332,333,337],{},"S3 storage strongly recommends ",[172,330,331],{"href":42},"Cloudflare R2",": global Anycast low latency and ",[334,335,336],"strong",{},"$0 egress fees",", so dozens of concurrent workers downloading assets never create unexpected transfer bills.",[168,339,340,341,343],{},"If you chose wrong, you don't need to recreate the workspace: use ",[210,342,223],{},". You can keep submitting and rendering during the move, and the old location is kept until you confirm deleting it.",[164,345,347],{"id":346},"pack-volumes-on-demand-reading","Pack Volumes & On-Demand Reading",[168,349,350,351,354],{},"To balance fast transfers with low storage API request costs, danio manages files in immutable ~256 MB ",[334,352,353],{},"Pack volumes",":",[191,356,357,367,377],{},[194,358,359,362,363,366],{},[334,360,361],{},"Bundling small files",": Files smaller than 64 MB (textures, scripts) are packed together with fast zstd compression; large files over 64 MB and the main ",[268,364,365],{},".blend"," file get separate packs.",[194,368,369,372,373,376],{},[334,370,371],{},"On-demand Range requests",": Workers pull only the files required by their assigned shot via HTTP ",[268,374,375],{},"Range"," headers, reading specific byte offsets without downloading the entire 256 MB pack.",[194,378,379,382,383,386],{},[334,380,381],{},"Zero-copy hardlink mounting",": Once cached locally, files are materialized into ",[268,384,385],{},"jobs\u002F"," through filesystem hard links or block cloning, instantly ready without double disk usage.",[164,388,390],{"id":389},"cache","Cache",[168,392,393],{},"The cache is the files each device has pulled from the store and keeps locally.",[168,395,396],{},"Each device pulls a file only once. When it renders the same task again, or another task that uses the same texture, it uses the cached copy. The cache belongs to that device alone, not to the workspace.",[191,398,399,405,433],{},[194,400,401,404],{},[334,402,403],{},"Automatic cleanup",": files unused for more than 14 days are deleted. Above 10 GB, the least recently used files are deleted first. Files used by tasks that are queued or rendering aren't deleted.",[194,406,407,410,411,414,415,418,419,422,423,213,426,429,430,432],{},[334,408,409],{},"Where to change it",": for this device, change ",[210,412,413],{},"Cache folder",", ",[210,416,417],{},"Keep cache"," and ",[210,420,421],{},"Cache limit"," under ",[210,424,425],{},"Settings",[210,427,428],{},"Data on this device",". People with admin access can also change them under ",[210,431,425],{}," in another device's details. Changing the folder requires restarting that danio.",[194,434,435,438,439,442,443,446],{},[334,436,437],{},"Rented servers",": put the cache on a local data disk or scratch volume (such as ",[268,440,441],{},"\u002Fdata\u002Fdanio\u002Fcache","), not on a network drive. Fill it in under ",[210,444,445],{},"Extra settings"," when you add the device.",[168,448,449,450,452,453,457],{},"To clean up by hand, use ",[210,451,294],{}," on the ",[172,454,456],{"href":455},"#storage-usage","Storage usage"," page. Deleted files are pulled from the store again when needed.",[164,459,461],{"id":460},"shared-cache","Shared cache",[168,463,464],{},"A shared cache is one cache folder shared by several devices in the same server room: once one device has pulled a file, the others copy it from there instead of pulling it from the store.",[168,466,467],{},"It suits several cloud servers rented in the same region: they can all reach the same network disk, while the store is far away.",[191,469,470,490,493],{},[194,471,472,473,418,476,422,479,213,481,483,484,486,487,489],{},"Fill in ",[210,474,475],{},"Shared cache folder",[210,477,478],{},"Shared cache limit",[210,480,425],{},[210,482,428],{},", or under ",[210,485,425],{}," in the device details. You can also fill in the folder under ",[210,488,445],{}," when you add a device. It takes effect after that danio restarts.",[194,491,492],{},"Above the limit, the least recently used files are deleted. With no limit set, there is no limit.",[194,494,495],{},"Files are copied from the shared cache into the local cache before use, and each device keeps its own local cache as before.",[164,497,456],{"id":498},"storage-usage",[168,500,501],{},"Storage usage is how much space each project, task, resource pack and film takes up in the store.",[168,503,504,422,507,213,509,511,512,515,516,518],{},[210,505,506],{},"Usage",[210,508,212],{},[210,510,87],{}," shows only the total and a segmented bar. Click ",[210,513,514],{},"View details"," to open the ",[210,517,456],{}," page. All cleanup happens on that page. It has two tabs:",[191,520,521,527],{},[194,522,523,526],{},[210,524,525],{},"Workspace store",": needs admin access. Expands by project → task → version, plus resource packs and data packs that no version uses.",[194,528,529,531],{},[210,530,294],{},": this computer's own cache, task work folders, resource packs and temporary files. Anyone at this computer can clean them up, and anything deleted can be pulled again.",[168,533,534,535,538],{},"In the workspace store, \"exclusive\" is the part only that item uses, and deleting it frees that space. \"Shared\" is used elsewhere too, so deleting the item doesn't free it. The ",[210,536,537],{},"Frees"," column is how much space deleting the item would free.",[164,540,542],{"id":541},"cleanup","Cleanup",[168,544,545],{},"Cleanup is how danio deletes things from the workspace store: it waits for a while first, and you can restore them during that time.",[168,547,548,549,551,552,554],{},"On the ",[210,550,456],{}," page, under ",[210,553,525],{},", check what you want to clean up and click a button at the bottom:",[191,556,557,567],{},[194,558,559,562,563,566],{},[210,560,561],{},"Mark for cleanup",": moves them into ",[210,564,565],{},"Waiting for deletion",". Tasks and projects are deleted after 7 days, everything else after 1 day. The host deletes them when the time is up.",[194,568,569,572],{},[210,570,571],{},"Delete now",": hold for 2 seconds. They are deleted right away and can't be restored.",[168,574,575,576,578,579,581,582,585,586,589],{},"Deleting tasks and projects from the task details or a project also puts them in ",[210,577,565],{},", and you can restore them within 7 days. Each row in the ",[210,580,565],{}," table shows when it will be deleted. Tasks, projects and removed resource packs can be restored with ",[210,583,584],{},"Restore",", and marked fragments can be taken back with ",[210,587,588],{},"Undo",". Items deleted or restored in the last 30 days are listed below the table.",[191,591,592,598,601],{},[194,593,594,595,205],{},"Nothing is deleted automatically unless someone checks it. Data packs that are no longer used are marked only if you check ",[210,596,597],{},"Unreferenced packs",[194,599,600],{},"Tasks that are queued or rendering can't be deleted.",[194,602,603],{},"Backups aren't cleaned up here. They are deleted by their own retention rules.",{"title":605,"searchDepth":606,"depth":607,"links":608},"",2,3,[609,610,611,612,613,614,615],{"id":166,"depth":606,"text":87},{"id":227,"depth":606,"text":228},{"id":346,"depth":606,"text":347},{"id":389,"depth":606,"text":390},{"id":460,"depth":606,"text":461},{"id":498,"depth":606,"text":456},{"id":541,"depth":606,"text":542},"Where a workspace's files live, how to choose a store, and caches, storage usage and cleanup.","md",{},{"icon":48},{"title":87,"description":616},"yibl1SRSXQfiK8xKtg4w0zOKhrSG2XESA5Eu5iiw6vA",[623,625],{"title":82,"path":83,"stem":84,"description":624,"icon":85,"children":-1},"Which devices make up a workspace, what the host does, and where to see devices and accepting renders.",{"title":91,"path":92,"stem":93,"description":626,"icon":94,"children":-1},"How packed assets are unpacked, how textures upload once, on-demand range pulls and library rewriting.",1794619223480]