Alternative file/image storage options #2537

Closed
opened 2025-12-29 18:19:46 +01:00 by adam · 1 comment
Owner

Originally created by @nward on GitHub (Apr 20, 2019).

Environment

  • Python version: 3.7.2
  • NetBox version: 2.5.10

Proposed Functionality

In #3013 I proposed modifying the image upload functionality to allow storage in a Postgres database. In this issue, I discuss the possibility for a way to extend the upload functionality in a generic way. Postgres storage itself was rejected, however, I believe there is cause for a generic upload functionality which does not store with the standard filesystem method.

I have researched Django's upload mechanisms, and instead propose configuration options to allow selection of alternative upload handling.

I have implemented this in a branch here: https://github.com/SearchLightNZ/netbox/tree/configurable_image_storage

If this is accepted, I will create a PR for this.

Use Case

A NetBox administrator needs to deploy NetBox in HA, and has existing object storage (S3, Swift, etc.). This feature allows the administrator to deploy NetBox using that object storage.

A NetBox administrator needs to deploy NetBox in an environment where introducing OS layer functions (i.e. file synchronisation) is untenable or there are unreasonable hurdles to doing so - due to policy, or perhaps they are deploying in to a limited PaaS environment. This feature allows the administrator to use some external storage - i.e. Object as described above, or anything they can reasonably use and write a storage implementation for.

Database Changes

None.

External Dependencies

No new external dependencies are required if the feature is not explicitly enabled.

Enabling this feature is explicit and obvious about the requirement for new external dependencies.

If the feature is used, then the modules providing the storage and app components of this feature are of course required.

Originally created by @nward on GitHub (Apr 20, 2019). ### Environment * Python version: 3.7.2 * NetBox version: 2.5.10 ### Proposed Functionality In #3013 I proposed modifying the image upload functionality to allow storage in a Postgres database. In this issue, I discuss the possibility for a way to extend the upload functionality in a generic way. Postgres storage itself was rejected, however, I believe there is cause for a generic upload functionality which does not store with the standard filesystem method. I have researched Django's upload mechanisms, and instead propose configuration options to allow selection of alternative upload handling. I have implemented this in a branch here: https://github.com/SearchLightNZ/netbox/tree/configurable_image_storage If this is accepted, I will create a PR for this. ### Use Case A NetBox administrator needs to deploy NetBox in HA, and has existing object storage (S3, Swift, etc.). This feature allows the administrator to deploy NetBox using that object storage. A NetBox administrator needs to deploy NetBox in an environment where introducing OS layer functions (i.e. file synchronisation) is untenable or there are unreasonable hurdles to doing so - due to policy, or perhaps they are deploying in to a limited PaaS environment. This feature allows the administrator to use some external storage - i.e. Object as described above, or anything they can reasonably use and write a storage implementation for. ### Database Changes None. ### External Dependencies No new external dependencies are required if the feature is not explicitly enabled. Enabling this feature is explicit and obvious about the requirement for new external dependencies. If the feature is used, then the modules providing the storage and app components of this feature are of course required.
adam added the status: duplicate label 2025-12-29 18:19:46 +01:00
adam closed this issue 2025-12-29 18:19:46 +01:00
Author
Owner

@jeremystretch commented on GitHub (Apr 22, 2019):

Please see #1814

@jeremystretch commented on GitHub (Apr 22, 2019): Please see #1814
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#2537