---
title: "API för fillagring"
version: 6.1
locale: sv
source: https://docs.djangoproject.com/sv/6.1/ref/files/storage/
canonical: https://djangodocs.dev/sv/6.1/ref/files/storage/
---
# API för fillagring

## Hämta standardlagringsklass

Django tillhandahåller praktiska sätt att komma åt standardlagringsklassen:

#### `storages`

Ett ordboksliknande objekt som gör det möjligt att hämta en lagringsinstans med hjälp av dess alias enligt definitionen i [`STORAGES`](/sv/6.1/ref/settings/#std-setting-STORAGES).

`storages` har ett attribut `backends`, vilket som standard är det råa värde som anges i [`STORAGES`](/sv/6.1/ref/settings/#std-setting-STORAGES).

Dessutom tillhandahåller `storages` en `create_storage()`-metod som accepterar den ordbok som används i [`STORAGES`](/sv/6.1/ref/settings/#std-setting-STORAGES) för en backend, och returnerar en lagringsinstans baserad på den backend-definitionen. Detta kan vara användbart för tredjepartspaket som behöver instansiera lagringsenheter i tester:

```pycon
>>> from django.core.files.storage import storages
>>> storages.backends
{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'},
 'custom': {'BACKEND': 'package.storage.CustomStorage'}}
>>> storage_instance = storages.create_storage({"BACKEND": "package.storage.CustomStorage"})
```

#### `class DefaultStorage`

[`DefaultStorage`](#django.core.files.storage.DefaultStorage) ger latent åtkomst till standardlagringssystemet som definieras av `default`-nyckeln i [`STORAGES`](/sv/6.1/ref/settings/#std-setting-STORAGES). [`DefaultStorage`](#django.core.files.storage.DefaultStorage) använder [`storages`](#django.core.files.storage.storages) internt.

#### `default_storage`

[`default_storage`](#django.core.files.storage.default_storage) är en instans av [`DefaultStorage`](#django.core.files.storage.DefaultStorage).

## Klassen `FileSystemStorage` (filsystemlagring)

#### `class FileSystemStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None, allow_overwrite=False)`

Klassen [`FileSystemStorage`](#django.core.files.storage.FileSystemStorage) implementerar grundläggande fillagring på ett lokalt filsystem. Den ärver från [`Storage`](#django.core.files.storage.Storage) och tillhandahåller implementationer för alla dess offentliga metoder.

> **Note**
>
> Metoden `FileSystemStorage.delete()` kommer inte att ge upphov till ett undantag om det angivna filnamnet inte finns.

#### `location`

Absolut sökväg till den katalog som innehåller filerna. Standardvärdet är värdet i din [`MEDIA_ROOT`](/sv/6.1/ref/settings/#std-setting-MEDIA_ROOT)-inställning.

#### `base_url`

URL som används för de filer som lagras på den här platsen. Standardvärdet är värdet i din inställning [`MEDIA_URL`](/sv/6.1/ref/settings/#std-setting-MEDIA_URL).

#### `file_permissions_mode`

De filsystembehörigheter som filen ska få när den sparas. Standardvärde är [`FILE_UPLOAD_PERMISSIONS`](/sv/6.1/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS).

#### `directory_permissions_mode`

De filsystembehörigheter som katalogen ska få när den sparas. Standardvärde är [`FILE_UPLOAD_DIRECTORY_PERMISSIONS`](/sv/6.1/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS).

#### `allow_overwrite`

Flagga för att kontrollera om det är tillåtet att spara en ny fil över en befintlig. Standardvärdet är `False`.

#### `get_created_time(name)`

Returnerar en [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) av systemets ctime, d.v.s. [`os.path.getctime()`](https://docs.python.org/3/library/os.path.html#os.path.getctime). På vissa system (t.ex. Unix) är detta tidpunkten för den senaste ändringen av metadata, och på andra (t.ex. Windows) är det tidpunkten då filen skapades.

## Klassen `InMemoryStorage` (minneslagring)

#### `class InMemoryStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None)`

Klassen [`InMemoryStorage`](#django.core.files.storage.InMemoryStorage) implementerar en minnesbaserad fillagring. Den har ingen persistens, men kan vara användbar för att påskynda tester genom att undvika diskåtkomst.

#### `location`

Absolut sökväg till det katalognamn som tilldelats filer. Standardvärdet är värdet i din inställning [`MEDIA_ROOT`](/sv/6.1/ref/settings/#std-setting-MEDIA_ROOT).

#### `base_url`

URL som används för de filer som lagras på den här platsen. Standardvärdet är värdet i din inställning [`MEDIA_URL`](/sv/6.1/ref/settings/#std-setting-MEDIA_URL).

#### `file_permissions_mode`

De filsystembehörigheter som tilldelas filer, tillhandahålls för kompatibilitet med `FileSystemStorage`. Standardvärde är [`FILE_UPLOAD_PERMISSIONS`](/sv/6.1/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS).

#### `directory_permissions_mode`

De filsystembehörigheter som tilldelas kataloger, tillhandahålls för kompatibilitet med `FileSystemStorage`. Standardvärde är [`FILE_UPLOAD_DIRECTORY_PERMISSIONS`](/sv/6.1/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS).

## Klassen `Storage` (lagring)

#### `class Storage`

Klassen [`Storage`](#django.core.files.storage.Storage) tillhandahåller ett standardiserat API för lagring av filer, tillsammans med en uppsättning standardbeteenden som alla andra lagringssystem kan ärva eller åsidosätta efter behov.

> **Note**
>
> När metoder returnerar naiva `datetime`-objekt kommer den effektiva tidszonen som används att vara det aktuella värdet för `os.environ['TZ']`; observera att detta vanligtvis ställs in från Djangos [`TIME_ZONE`](/sv/6.1/ref/settings/#std-setting-TIME_ZONE).

#### `delete(name)`

Raderar filen som refereras till av `namn`. Om borttagning inte stöds på mållagringssystemet kommer detta att ge upphov till `NotImplementedError` istället.

#### `exists(name)`

Returnerar `True` om en fil som refereras till av det angivna namnet redan finns i lagringssystemet.

#### `get_accessed_time(name)`

Returnerar en [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) av den senaste åtkomsttiden för filen. För lagringssystem som inte kan returnera den senaste åtkomsttiden kommer detta att ge upphov till [`NotImplementedError`](https://docs.python.org/3/library/exceptions.html#NotImplementedError).

Om [`USE_TZ`](/sv/6.1/ref/settings/#std-setting-USE_TZ) är `True`, returneras en medveten `datetime`, annars returneras en naiv `datetime` i den lokala tidszonen.

#### `get_alternative_name(file_root, file_ext)`

Returnerar ett alternativt filnamn baserat på parametrarna `file_root` och `file_ext`, ett understreck plus en slumpmässig alfanumerisk sträng med 7 tecken läggs till filnamnet före tillägget.

#### `get_available_name(name, max_length=None)`

Returnerar ett filnamn baserat på parametern `name` som är ledigt och tillgängligt för att nytt innehåll ska kunna skrivas till på mållagringssystemet.

Längden på filnamnet kommer inte att överstiga `max_length`, om det anges. Om ett fritt unikt filnamn inte kan hittas, kommer ett [`SuspiciousFileOperation`](/sv/6.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation) undantag att uppstå.

Om det redan finns en fil med `namn` anropas [`get_alternative_name()`](/sv/6.1/howto/custom-file-storage/#django.core.files.storage.get_alternative_name) för att få ett alternativt namn.

#### `get_created_time(name)`

Returnerar en [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) av skapelsetiden för filen. För lagringssystem som inte kan returnera skapelsetiden kommer detta att ge upphov till [`NotImplementedError`](https://docs.python.org/3/library/exceptions.html#NotImplementedError).

Om [`USE_TZ`](/sv/6.1/ref/settings/#std-setting-USE_TZ) är `True`, returneras en medveten `datetime`, annars returneras en naiv `datetime` i den lokala tidszonen.

#### `get_modified_time(name)`

Returnerar en [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) av den senaste modifieringstiden för filen. För lagringssystem som inte kan returnera den senaste modifierade tiden kommer detta att ge upphov till [`NotImplementedError`](https://docs.python.org/3/library/exceptions.html#NotImplementedError).

Om [`USE_TZ`](/sv/6.1/ref/settings/#std-setting-USE_TZ) är `True`, returneras en medveten `datetime`, annars returneras en naiv `datetime` i den lokala tidszonen.

#### `get_valid_name(name)`

Returnerar ett filnamn baserat på parametern `name` som är lämpligt för användning på mållagringssystemet.

#### `generate_filename(filename)`

Validates the `filename` by calling [`get_valid_name`](/sv/6.1/howto/custom-file-storage/#django.core.files.storage.get_valid_name) and
returns a filename to be passed to the [`save()`](#django.core.files.storage.Storage.save) method.

The `filename` argument may include a path as returned by
[`FileField.upload_to`](/sv/6.1/ref/models/fields/#django.db.models.FileField.upload_to).
In that case, the path won’t be passed to [`get_valid_name`](/sv/6.1/howto/custom-file-storage/#django.core.files.storage.get_valid_name) but
will be prepended back to the resulting name.

Standardimplementeringen använder [`os.path`](https://docs.python.org/3/library/os.path.html#module-os.path)-operationer. Åsidosätt den här metoden om det inte är lämpligt för din lagring.

#### `listdir(path)`

Listar innehållet i den angivna sökvägen och returnerar en 2-tupel av listor; det första objektet är kataloger och det andra objektet är filer. För lagringssystem som inte kan tillhandahålla en sådan lista kommer detta att ge upphov till ett `NotImplementedError` istället.

#### `open(name, mode='rb')`

Öppnar filen som anges av `name`. Observera att även om den returnerade filen garanterat är ett `File`-objekt, kan det i själva verket vara någon underklass. I fallet med fjärrlagring av filer innebär detta att läsning/skrivning kan vara ganska långsam, så var försiktig.

#### `path(name)`

Sökvägen till det lokala filsystemet där filen kan öppnas med Pythons standard `open()`. För lagringssystem som inte är tillgängliga från det lokala filsystemet kommer detta att ge upphov till `NotImplementedError` istället.

#### `save(name, content, max_length=None)`

Sparar en ny fil i lagringssystemet, företrädesvis med det angivna namnet. Om det redan finns en fil med detta namn `namn` kan lagringssystemet ändra filnamnet efter behov för att få ett unikt namn. Det faktiska namnet på den lagrade filen kommer att returneras.

Argumentet `max_length` skickas vidare till [`get_available_name()`](/sv/6.1/howto/custom-file-storage/#django.core.files.storage.get_available_name).

Argumentet `content` måste vara en instans av [`django.core.files.File`](/sv/6.1/ref/files/file/#django.core.files.File) eller ett filliknande objekt som kan omslutas av `File`.

#### `size(name)`

Returnerar den totala storleken, i byte, på filen som refereras av `namn`. För lagringssystem som inte kan returnera filstorleken kommer detta att ge upphov till `NotImplementedError` istället.

#### `url(name)`

Returnerar URL:en där innehållet i filen som refereras till av `name` kan nås. För lagringssystem som inte stöder åtkomst via URL kommer detta att ge upphov till `NotImplementedError` istället.

> **There are community-maintained solutions too!**
>
> Django has a vibrant ecosystem. There are storage backends
> highlighted on the [Community Ecosystem](https://www.djangoproject.com/community/ecosystem/#storage-and-static-files) page. The Django Packages
> [Storage Backends grid](https://djangopackages.org/grids/g/storage-backends/) has even more options for you!
