| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/19.0/fs_storage |
| VERSION | |
| VERSION | 1.1.2 |
| CATEGORY | |
| CATEGORY | FS Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Laurent Mignon (ACSONE), David Beal, Weblate, OCA-git-bot, Iván Todorovich, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-env: - server_environment odoo/odoo: - base - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
fsspec>=2024.5.0 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This addon is a technical addon that allows you to define filesystem like storage for your data. It's used by other addons to store their data in a transparent way into different kind of storages. Through the fs.storage record, you get access to an object that implements the [fsspec.spec.AbstractFileSystem](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem) interface and therefore give you an unified interface to access your data whatever the storage protocol you decide to use. The list of supported protocols depends on the installed fsspec implementations. By default, the addon will install the following protocols: - LocalFileSystem - MemoryFileSystem - ZipFileSystem - TarFileSystem - FTPFileSystem - CachingFileSystem - WholeFileSystem - SimplCacheFileSystem - ReferenceFileSystem - GenericFileSystem - DirFileSystem - DatabricksFileSystem - GitHubFileSystem - JupiterFileSystem - OdooFileSystem The OdooFileSystem is the one that allows you to store your data into a directory mounted into your Odoo's storage directory. This is the default FS Storage when creating a new fs.storage record. Others protocols are available through the installation of additional python packages: - DropboxDriveFileSystem -\> pip install fsspec\[dropbox\] - HTTPFileSystem -\> pip install fsspec\[http\] - HTTPSFileSystem -\> pip install fsspec\[http\] - GCSFileSystem -\> pip install fsspec\[gcs\] - GSFileSystem -\> pip install fsspec\[gs\] - GoogleDriveFileSystem -\> pip install gdrivefs - SFTPFileSystem -\> pip install fsspec\[sftp\] - HaddoopFileSystem -\> pip install fsspec\[hdfs\] - S3FileSystem -\> pip install fsspec\[s3\] - WandbFS -\> pip install wandbfs - OCIFileSystem -\> pip install fsspec\[oci\] - AsyncLocalFileSystem -\> pip install 'morefs\[asynclocalfs\] - AzureDatalakeFileSystem -\> pip install fsspec\[adl\] - AzureBlobFileSystem -\> pip install fsspec\[abfs\] - DaskWorkerFileSystem -\> pip install fsspec\[dask\] - GitFileSystem -\> pip install fsspec\[git\] - SMBFileSystem -\> pip install fsspec\[smb\] - LibArchiveFileSystem -\> pip install fsspec\[libarchive\] - OSSFileSystem -\> pip install ossfs - WebdavFileSystem -\> pip install webdav4 - DVCFileSystem -\> pip install dvc - XRootDFileSystem -\> pip install fsspec-xrootd This list of supported protocols is not exhaustive or could change in the future depending on the fsspec releases. You can find more information about the supported protocols on the [fsspec documentation](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem). |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fs_storage_form_view |
fs.storage.form (in fs_storage) | fs.storage | form | New |
fs_storage_search_view |
fs.storage.search (in fs_storage) | fs.storage | search | New |
fs_storage_tree_view |
fs.storage.list (in fs_storage) | fs.storage | list | New |
fs_test_connection_form_view |
fs.test.connection.form | fs.test.connection | form | New |
check_connection_method
Selection
default='marker_file'
help='Set a method if you want the connection to remote to be checked every time the storage is used, in order to remove the obsolete connection from the cache.\n* Create Marker file : Create a file on remote and check it exists\n* List File : List all files from root directory'
selection='_get_check_connection_method_selection'
code
Char
help="Technical code used to identify the storage backend into the code.This code must be unique. This code is used for example to define the storage backend to store the attachments via the configuration parameter 'ir_attachment.storage.force.database' when the module 'fs_attachment' is installed."
required=True
directory_path
Char
help='Relative path to the directory to store the file'
eval_options_from_env
Boolean
help='Resolve options values starting with $ from environment variables. e.g\n {\n "endpoint_url": "$AWS_ENDPOINT_URL",\n }\n '
string='Resolve env vars'
field_ids
One2many → ir.model.fields
compute='_compute_field_ids'
help='List of fields such as attachments linked to one of these fields will be stored in this storage. NB: If the attachment is linked to a field that is in one FS storage, and the related model is in another FS storage, we will store it into the storage linked to the resource field.'
inverse='_inverse_field_ids'
args: 'ir.model.fields', 'storage_id'
field_xmlids
Char
help='List of fields xml ids such as attachments linked to one of these fields will be stored in this storage. NB: If the attachment is linked to a field that is in one FS storage, and the related model is in another FS storage, we will store it into the storage linked to the resource field.'
is_cacheable
Boolean
default=True
help='If True, once instantiated, the filesystem will be cached and reused.\nBy default, the filesystem is cacheable but in some cases, like when using OAuth2 authentication, the filesystem cannot be cached because it depends on the user and the token can change.\nIn this case, you can set this field to False to avoid caching the filesystem.'
model_ids
One2many → ir.model
compute='_compute_model_ids'
help='List of models such as attachments linked to one of these models will be stored in this storage.'
inverse='_inverse_model_ids'
args: 'ir.model', 'storage_id'
model_xmlids
Char
help='List of models xml ids such as attachments linked to one of these models will be stored in this storage.'
name
Char
required=True
options
Text
help="The options used to initialize the filesystem.\nThis is a JSON field that depends on the protocol used.\nFor example, for the sftp protocol, you can provide the following:\n{\n 'host': 'my.sftp.server',\n 'username': 'myuser',\n 'password': 'mypassword',\n 'port': 22\n}\nFor more information, please refer to the fsspec documentation:\nhttps://filesystem-spec.readthedocs.io/en/latest/api.html#built-in-implementations"
options_properties
Text
compute='_compute_options_properties'
store=False
string='Available properties'
options_protocol
Selection
compute='_compute_protocol_descr'
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
selection='_get_options_protocol'
string='Describes Protocol'
protocol
Selection
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
required=True
selection='_get_protocols'
protocol_descr
Text
compute='_compute_protocol_descr'
action_test_config(self)
add(self, relative_path, data, binary=True, **kwargs) -> None
copy(self, default=None)
create(self, vals_list)
delete(self, relative_path) -> None
find_files(self, pattern, relative_path='', **kw) -> <expr>
fs(self) -> fsspec.AbstractFileSystem
get(self, relative_path, binary=True, **kwargs) -> AnyStr
get_by_code(self, code) -> FSStorage
get_directory_path(self)
get_fs_by_code(self, code, force_no_cache=False)
get_id_by_code(self, code)
get_id_by_code_map(self)
get_protocol_by_code(self, code)
get_storage_code_by_model_field(self, model_name, field_name=None)
get_storage_codes(self)
list_files(self, relative_path='', pattern=False) -> <expr>
move_files(self, files, destination_path, **kw) -> None
write(self, vals)
check_connection_method
Selection
required=True
selection='_get_check_connection_method_selection'
storage_id
Many2one → fs.storage
action_test_config(self)
default_get(self, field_list)
storage_id
Many2one → fs.storage
help='If specified, all attachments linked to this model will be stored in the provided storage.'
args: 'fs.storage'
No public methods.
storage_id
Many2one → fs.storage
help='If specified, all attachments linked to this field will be stored in the provided storage.'
args: 'fs.storage'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/18.0/fs_storage |
| VERSION | |
| VERSION | 2.1.2 |
| CATEGORY | |
| CATEGORY | FS Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Laurent Mignon (ACSONE), Sébastien Alix, Weblate, OCA-git-bot, oca-ci, Vincent Hatakeyama, Pierre Halleux, Christopher Rogos, Laurent Mignonn (ACSONE) |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-env: - server_environment odoo/odoo: - base - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
fsspec>=2024.5.0 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This addon is a technical addon that allows you to define filesystem like storage for your data. It's used by other addons to store their data in a transparent way into different kind of storages. Through the fs.storage record, you get access to an object that implements the [fsspec.spec.AbstractFileSystem](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem) interface and therefore give you an unified interface to access your data whatever the storage protocol you decide to use. The list of supported protocols depends on the installed fsspec implementations. By default, the addon will install the following protocols: - LocalFileSystem - MemoryFileSystem - ZipFileSystem - TarFileSystem - FTPFileSystem - CachingFileSystem - WholeFileSystem - SimplCacheFileSystem - ReferenceFileSystem - GenericFileSystem - DirFileSystem - DatabricksFileSystem - GitHubFileSystem - JupiterFileSystem - OdooFileSystem The OdooFileSystem is the one that allows you to store your data into a directory mounted into your Odoo's storage directory. This is the default FS Storage when creating a new fs.storage record. Others protocols are available through the installation of additional python packages: - DropboxDriveFileSystem -\> pip install fsspec\[dropbox\] - HTTPFileSystem -\> pip install fsspec\[http\] - HTTPSFileSystem -\> pip install fsspec\[http\] - GCSFileSystem -\> pip install fsspec\[gcs\] - GSFileSystem -\> pip install fsspec\[gs\] - GoogleDriveFileSystem -\> pip install gdrivefs - SFTPFileSystem -\> pip install fsspec\[sftp\] - HaddoopFileSystem -\> pip install fsspec\[hdfs\] - S3FileSystem -\> pip install fsspec\[s3\] - WandbFS -\> pip install wandbfs - OCIFileSystem -\> pip install fsspec\[oci\] - AsyncLocalFileSystem -\> pip install 'morefs\[asynclocalfs\] - AzureDatalakeFileSystem -\> pip install fsspec\[adl\] - AzureBlobFileSystem -\> pip install fsspec\[abfs\] - DaskWorkerFileSystem -\> pip install fsspec\[dask\] - GitFileSystem -\> pip install fsspec\[git\] - SMBFileSystem -\> pip install fsspec\[smb\] - LibArchiveFileSystem -\> pip install fsspec\[libarchive\] - OSSFileSystem -\> pip install ossfs - WebdavFileSystem -\> pip install webdav4 - DVCFileSystem -\> pip install dvc - XRootDFileSystem -\> pip install fsspec-xrootd This list of supported protocols is not exhaustive or could change in the future depending on the fsspec releases. You can find more information about the supported protocols on the [fsspec documentation](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem). |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fs_storage_form_view |
fs.storage.form (in fs_storage) | fs.storage | form | New |
fs_storage_search_view |
fs.storage.search (in fs_storage) | fs.storage | search | New |
fs_storage_tree_view |
fs.storage.list (in fs_storage) | fs.storage | list | New |
fs_test_connection_form_view |
fs.test.connection.form | fs.test.connection | form | New |
check_connection_method
Selection
default='marker_file'
help='Set a method if you want the connection to remote to be checked every time the storage is used, in order to remove the obsolete connection from the cache.\n* Create Marker file : Create a file on remote and check it exists\n* List File : List all files from root directory'
selection='_get_check_connection_method_selection'
code
Char
help="Technical code used to identify the storage backend into the code.This code must be unique. This code is used for example to define the storage backend to store the attachments via the configuration parameter 'ir_attachment.storage.force.database' when the module 'fs_attachment' is installed."
required=True
directory_path
Char
help='Relative path to the directory to store the file'
eval_options_from_env
Boolean
help='Resolve options values starting with $ from environment variables. e.g\n {\n "endpoint_url": "$AWS_ENDPOINT_URL",\n }\n '
string='Resolve env vars'
field_ids
One2many → ir.model.fields
compute='_compute_field_ids'
help='List of fields such as attachments linked to one of these fields will be stored in this storage. NB: If the attachment is linked to a field that is in one FS storage, and the related model is in another FS storage, we will store it into the storage linked to the resource field.'
inverse='_inverse_field_ids'
args: 'ir.model.fields', 'storage_id'
field_xmlids
Char
help='List of fields xml ids such as attachments linked to one of these fields will be stored in this storage. NB: If the attachment is linked to a field that is in one FS storage, and the related model is in another FS storage, we will store it into the storage linked to the resource field.'
is_cacheable
Boolean
default=True
help='If True, once instantiated, the filesystem will be cached and reused.\nBy default, the filesystem is cacheable but in some cases, like when using OAuth2 authentication, the filesystem cannot be cached because it depends on the user and the token can change.\nIn this case, you can set this field to False to avoid caching the filesystem.'
model_ids
One2many → ir.model
compute='_compute_model_ids'
help='List of models such as attachments linked to one of these models will be stored in this storage.'
inverse='_inverse_model_ids'
args: 'ir.model', 'storage_id'
model_xmlids
Char
help='List of models xml ids such as attachments linked to one of these models will be stored in this storage.'
name
Char
required=True
options
Text
help="The options used to initialize the filesystem.\nThis is a JSON field that depends on the protocol used.\nFor example, for the sftp protocol, you can provide the following:\n{\n 'host': 'my.sftp.server',\n 'ssh_kwrags': {\n 'username': 'myuser',\n 'password': 'mypassword',\n 'port': 22,\n }\n}\nFor more information, please refer to the fsspec documentation:\nhttps://filesystem-spec.readthedocs.io/en/latest/api.html#built-in-implementations"
options_properties
Text
compute='_compute_options_properties'
store=False
string='Available properties'
options_protocol
Selection
compute='_compute_protocol_descr'
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
selection='_get_options_protocol'
string='Describes Protocol'
protocol
Selection
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
required=True
selection='_get_protocols'
protocol_descr
Text
compute='_compute_protocol_descr'
action_test_config(self)
add(self, relative_path, data, binary=True, **kwargs) -> None
copy(self, default=None)
create(self, vals_list)
delete(self, relative_path) -> None
find_files(self, pattern, relative_path='', **kw) -> <expr>
fs(self) -> fsspec.AbstractFileSystem
get(self, relative_path, binary=True, **kwargs) -> AnyStr
get_by_code(self, code) -> FSStorage
get_directory_path(self)
get_fs_by_code(self, code, force_no_cache=False)
get_id_by_code(self, code)
get_id_by_code_map(self)
get_protocol_by_code(self, code)
get_storage_code_by_model_field(self, model_name, field_name=None)
get_storage_codes(self)
list_files(self, relative_path='', pattern=False) -> <expr>
move_files(self, files, destination_path, **kw) -> None
write(self, vals)
check_connection_method
Selection
required=True
selection='_get_check_connection_method_selection'
storage_id
Many2one → fs.storage
action_test_config(self)
default_get(self, field_list)
storage_id
Many2one → fs.storage
help='If specified, all attachments linked to this model will be stored in the provided storage.'
args: 'fs.storage'
No public methods.
storage_id
Many2one → fs.storage
help='If specified, all attachments linked to this field will be stored in the provided storage.'
args: 'fs.storage'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/17.0/fs_storage |
| VERSION | |
| VERSION | 2.1.1 |
| CATEGORY | |
| CATEGORY | FS Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Laurent Mignon (ACSONE), Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Vincent Hatakeyama, John Herholz |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-env: - server_environment odoo/odoo: - base - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
fsspec>=2024.5.0 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This addon is a technical addon that allows you to define filesystem like storage for your data. It's used by other addons to store their data in a transparent way into different kind of storages. Through the fs.storage record, you get access to an object that implements the [fsspec.spec.AbstractFileSystem](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem) interface and therefore give you an unified interface to access your data whatever the storage protocol you decide to use. The list of supported protocols depends on the installed fsspec implementations. By default, the addon will install the following protocols: - LocalFileSystem - MemoryFileSystem - ZipFileSystem - TarFileSystem - FTPFileSystem - CachingFileSystem - WholeFileSystem - SimplCacheFileSystem - ReferenceFileSystem - GenericFileSystem - DirFileSystem - DatabricksFileSystem - GitHubFileSystem - JupiterFileSystem - OdooFileSystem The OdooFileSystem is the one that allows you to store your data into a directory mounted into your Odoo's storage directory. This is the default FS Storage when creating a new fs.storage record. Others protocols are available through the installation of additional python packages: - DropboxDriveFileSystem -\> pip install fsspec\[dropbox\] - HTTPFileSystem -\> pip install fsspec\[http\] - HTTPSFileSystem -\> pip install fsspec\[http\] - GCSFileSystem -\> pip install fsspec\[gcs\] - GSFileSystem -\> pip install fsspec\[gs\] - GoogleDriveFileSystem -\> pip install gdrivefs - SFTPFileSystem -\> pip install fsspec\[sftp\] - HaddoopFileSystem -\> pip install fsspec\[hdfs\] - S3FileSystem -\> pip install fsspec\[s3\] - WandbFS -\> pip install wandbfs - OCIFileSystem -\> pip install fsspec\[oci\] - AsyncLocalFileSystem -\> pip install 'morefs\[asynclocalfs\] - AzureDatalakeFileSystem -\> pip install fsspec\[adl\] - AzureBlobFileSystem -\> pip install fsspec\[abfs\] - DaskWorkerFileSystem -\> pip install fsspec\[dask\] - GitFileSystem -\> pip install fsspec\[git\] - SMBFileSystem -\> pip install fsspec\[smb\] - LibArchiveFileSystem -\> pip install fsspec\[libarchive\] - OSSFileSystem -\> pip install ossfs - WebdavFileSystem -\> pip install webdav4 - DVCFileSystem -\> pip install dvc - XRootDFileSystem -\> pip install fsspec-xrootd This list of supported protocols is not exhaustive or could change in the future depending on the fsspec releases. You can find more information about the supported protocols on the [fsspec documentation](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem). |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fs_storage_form_view |
fs.storage.form (in fs_storage) | fs.storage | form | New |
fs_storage_search_view |
fs.storage.search (in fs_storage) | fs.storage | search | New |
fs_storage_tree_view |
fs.storage.tree (in fs_storage) | fs.storage | tree | New |
fs_test_connection_form_view |
fs.test.connection.form | fs.test.connection | form | New |
check_connection_method
Selection
default='marker_file'
help='Set a method if you want the connection to remote to be checked every time the storage is used, in order to remove the obsolete connection from the cache.\n* Create Marker file : Create a file on remote and check it exists\n* List File : List all files from root directory'
selection='_get_check_connection_method_selection'
code
Char
help="Technical code used to identify the storage backend into the code.This code must be unique. This code is used for example to define the storage backend to store the attachments via the configuration parameter 'ir_attachment.storage.force.database' when the module 'fs_attachment' is installed."
required=True
directory_path
Char
help='Relative path to the directory to store the file'
eval_options_from_env
Boolean
help='Resolve options values starting with $ from environment variables. e.g\n {\n "endpoint_url": "$AWS_ENDPOINT_URL",\n }\n '
string='Resolve env vars'
name
Char
required=True
options
Text
help="The options used to initialize the filesystem.\nThis is a JSON field that depends on the protocol used.\nFor example, for the sftp protocol, you can provide the following:\n{\n 'host': 'my.sftp.server',\n 'ssh_kwrags': {\n 'username': 'myuser',\n 'password': 'mypassword',\n 'port': 22,\n }\n}\nFor more information, please refer to the fsspec documentation:\nhttps://filesystem-spec.readthedocs.io/en/latest/api.html#built-in-implementations"
options_properties
Text
compute='_compute_options_properties'
store=False
string='Available properties'
options_protocol
Selection
compute='_compute_protocol_descr'
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
selection='_get_options_protocol'
string='Describes Protocol'
protocol
Selection
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
required=True
selection='_get_protocols'
protocol_descr
Text
compute='_compute_protocol_descr'
action_test_config(self)
add(self, relative_path, data, binary=True, **kwargs) -> None
copy(self, default=None)
create(self, vals_list)
delete(self, relative_path) -> None
find_files(self, pattern, relative_path='', **kw) -> <expr>
fs(self) -> fsspec.AbstractFileSystem
get(self, relative_path, binary=True, **kwargs) -> AnyStr
get_by_code(self, code) -> FSStorage
get_directory_path(self)
get_fs_by_code(self, code)
get_id_by_code(self, code)
get_id_by_code_map(self)
get_storage_codes(self)
list_files(self, relative_path='', pattern=False) -> <expr>
move_files(self, files, destination_path, **kw) -> None
write(self, vals)
check_connection_method
Selection
required=True
selection='_get_check_connection_method_selection'
storage_id
Many2one → fs.storage
action_test_config(self)
default_get(self, field_list)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/16.0/fs_storage |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | FS Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Laurent Mignon (ACSONE), Enric Tobella, Nils Hamerlinck, Adrien Peiffer, Víctor Martínez, JordiMForgeFlow, Florian da Costa, Weblate, OCA-git-bot, oca-ci, Tran Anh Tuan, len, Laurent Mignonn (ACSONE), Ben Coronel |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:52 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
fsspec>=2024.5.0 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fs_storage_form_view |
fs.storage.form (in fs_storage) | fs.storage | form | New |
fs_storage_search_view |
fs.storage.search (in fs_storage) | fs.storage | search | New |
fs_storage_tree_view |
fs.storage.tree (in fs_storage) | fs.storage | tree | New |
fs_test_connection_form_view |
fs.test.connection.form | fs.test.connection | form | New |
check_connection_method
Selection
default='marker_file'
help='Set a method if you want the connection to remote to be checked every time the storage is used, in order to remove the obsolete connection from the cache.\n* Create Marker file : Create a file on remote and check it exists\n* List File : List all files from root directory'
selection='_get_check_connection_method_selection'
code
Char
help="Technical code used to identify the storage backend into the code.This code must be unique. This code is used for example to define the storage backend to store the attachments via the configuration parameter 'ir_attachment.storage.force.database' when the module 'fs_attachment' is installed."
required=True
directory_path
Char
help='Relative path to the directory to store the file'
eval_options_from_env
Boolean
help='Resolve options values starting with $ from environment variables. e.g\n {\n "endpoint_url": "$AWS_ENDPOINT_URL",\n }\n '
string='Resolve env vars'
is_cacheable
Boolean
default=True
help='If True, once instantiated, the filesystem will be cached and reused.\nBy default, the filesystem is cacheable but in some cases, like when using OAuth2 authentication, the filesystem cannot be cached because it depends on the user and the token can change.\nIn this case, you can set this field to False to avoid caching the filesystem.'
name
Char
required=True
options
Text
help="The options used to initialize the filesystem.\nThis is a JSON field that depends on the protocol used.\nFor example, for the sftp protocol, you can provide the following:\n{\n 'host': 'my.sftp.server',\n 'ssh_kwrags': {\n 'username': 'myuser',\n 'password': 'mypassword',\n 'port': 22,\n }\n}\nFor more information, please refer to the fsspec documentation:\nhttps://filesystem-spec.readthedocs.io/en/latest/api.html#built-in-implementations"
options_properties
Text
compute='_compute_options_properties'
store=False
string='Available properties'
options_protocol
Selection
compute='_compute_protocol_descr'
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
selection='_get_options_protocol'
string='Describes Protocol'
protocol
Selection
help='The protocol used to access the content of filesystem.\nThis list is the one supported by the fsspec library (see https://filesystem-spec.readthedocs.io/en/latest). A filesystem protocolis added by default and refers to the odoo local filesystem.\nPay attention that according to the protocol, some options must beprovided through the options field.'
required=True
selection='_get_protocols'
protocol_descr
Text
compute='_compute_protocol_descr'
action_test_config(self)
add(self, relative_path, data, binary=True, **kwargs) -> None
copy(self, default=None)
create(self, vals_list)
delete(self, relative_path) -> None
find_files(self, pattern, relative_path='', **kw) -> <expr>
fs(self) -> fsspec.AbstractFileSystem
get(self, relative_path, binary=True, **kwargs) -> AnyStr
get_by_code(self, code) -> FSStorage
get_directory_path(self)
get_fs_by_code(self, code, force_no_cache=False)
get_id_by_code(self, code)
get_id_by_code_map(self)
get_protocol_by_code(self, code)
get_storage_codes(self)
list_files(self, relative_path='', pattern=False) -> <expr>
move_files(self, files, destination_path, **kw) -> None
write(self, vals)
check_connection_method
Selection
required=True
selection='_get_check_connection_method_selection'
storage_id
Many2one → fs.storage
action_test_config(self)
default_get(self, field_list)