# dokumentasi Django 2.2.9.dev20191202104323

# API penyimpanan berkas

## Mendapatkan penyimpanan saat ini

Django menyediakan dua cara meyakinkan untuk mengakses kelas penyimpanan saat ini:

class `DefaultStorage`

  `DefaultStorage` provides lazy access to the current default storage system as defined by `DEFAULT_FILE_STORAGE`. `DefaultStorage` uses `get_storage_class()` internally.

`get_storage_class`(import_path=None)

  Mengembalikan sebuah kelas atau modul yang menerapkan API penyimpanan.

  When called without the `import_path` parameter `get_storage_class` will return the current default storage system as defined by `DEFAULT_FILE_STORAGE`. If `import_path` is provided, `get_storage_class` will attempt to import the class or module from the given path and will return it if successful. An exception will be raised if the import is unsuccessful.

## Kelas `FileSystemStorage`

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

  The `FileSystemStorage` class implements basic file storage on a local filesystem. It inherits from `Storage` and provides implementations for all the public methods thereof.

  `location`

    Absolute path to the directory that will hold the files. Defaults to the value of your `MEDIA_ROOT` setting.

  `base_url`

    URL yang melayani berkas-berkas disimppan pada tempat ini. Awalan pada nilai dari pengaturan `MEDIA_URL` anda.

  `file_permissions_mode`

    The file system permissions that the file will receive when it is saved. Defaults to `FILE_UPLOAD_PERMISSIONS`.

  `directory_permissions_mode`

    Perizinan sistem berkas dimana direktori akan menerima ketika itu disimpan. Awalan pada `FILE_UPLOAD_DIRECTORY_PERMISSIONS`.

  Catatan

  Metode `FileSystemStorage.delete()` tidak akan memunculkan sebuah pengecualian jika nama diberikan tidak ada.

  `get_created_time`(name)

    Returns a `datetime` of the system's ctime, i.e. `os.path.getctime()`. On some systems (like Unix), this is the time of the last metadata change, and on others (like Windows), it's the creation time of the file.

## Kelas `Storage`

class `Storage`

  The `Storage` class provides a standardized API for storing files, along with a set of default behaviors that all other storage systems can inherit or override as necessary.

  Catatan

  When methods return naive `datetime` objects, the effective timezone used will be the current value of `os.environ['TZ']`; note that this is usually set from Django's `TIME_ZONE`.

  `delete`(name)

    Menghapus berkas diacukan oleh `name`. Jika penghapusan tidak didukung pada sasaran sistem penyimpanan ini malahan akan memunculkan `NotImplementedError`.

  `exists`(name)

    Mengembalikan `True` jika sebuah berkas diacukan oleh nama yang sudah diberikan dalam sistem penyimpanan, atau `False` jika nama tersedia untuk sebuah berkas baru.

  `get_accessed_time`(name)

    Mengembalikan sebuah `datetime` dari waktu akses terakhir dari berkas. Untuk sistem penyimpanan tidak dapat mengembalikan ke waktu akses terakhir ini akan memunculkan `NotImplementedError`.

    Jika `USE_TZ` adalah `True`, mengembalikan sebuah kewaspadaan `datetime`, sebaliknya mengembalikan `datetime` tidak dibuat-buat dalam zona waktu lokal.

  `get_available_name`(name, max_length=None)

    Mengembalikan sebuah nama berkas berdasarkan pada parameter `name` yang bebas dan tersedia untuk isi baru untuk ditulis pada sasaran sistem penyimpanan.

    The length of the filename will not exceed `max_length`, if provided. If a free unique filename cannot be found, a `SuspiciousFileOperation` exception will be raised.

    Jika sebuah berkas dengan `name` sudah ada, garis bawah ditambah 7 karakter acak alpanumerik string akan ditambahkan ke nama berkas sebelum tambahan.

  `get_created_time`(name)

    Returns a `datetime` of the creation time of the file. For storage systems unable to return the creation time this will raise `NotImplementedError`.

    Jika `USE_TZ` adalah `True`, mengembalikan sebuah kewaspadaan `datetime`, sebaliknya mengembalikan `datetime` tidak dibuat-buat dalam zona waktu lokal.

  `get_modified_time`(name)

    Returns a `datetime` of the last modified time of the file. For storage systems unable to return the last modified time this will raise `NotImplementedError`.

    Jika `USE_TZ` adalah `True`, mengembalikan sebuah kewaspadaan `datetime`, sebaliknya mengembalikan `datetime` tidak dibuat-buat dalam zona waktu lokal.

  `get_valid_name`(name)

    Returns a filename based on the `name` parameter that's suitable for use on the target storage system.

  `generate_filename`(filename)

    Mensahkan `filename` dengan memanggil `get_valid_name()` dan mengembalikan sebuah nama berkas dilewatkan ke metedo `save()`.

    The `filename` argument may include a path as returned by `FileField.upload_to`. In that case, the path won't be passed to `get_valid_name()` but will be prepended back to the resulting name.

    Penerapan awal menggunakan operasi `os.path`. Kesampingkan cara ini jika itu tidak sesuai untuk penyimpanan anda.

  `listdir`(path)

    Lists the contents of the specified path, returning a 2-tuple of lists; the first item being directories, the second item being files. For storage systems that aren't able to provide such a listing, this will raise a `NotImplementedError` instead.

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

    Opens the file given by `name`. Note that although the returned file is guaranteed to be a `File` object, it might actually be some subclass. In the case of remote file storage this means that reading/writing could be quite slow, so be warned.

  `path`(name)

    The local filesystem path where the file can be opened using Python's standard `open()`. For storage systems that aren't accessible from the local filesystem, this will raise `NotImplementedError` instead.

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

    Saves a new file using the storage system, preferably with the name specified. If there already exists a file with this name `name`, the storage system may modify the filename as necessary to get a unique name. The actual name of the stored file will be returned.

    Argumen `max_length` dilewatkan bersama pada `get_available_name()`.

    The `content` argument must be an instance of `django.core.files.File` or a file-like object that can be wrapped in `File`.

  `size`(name)

    Returns the total size, in bytes, of the file referenced by `name`. For storage systems that aren't able to return the file size this will raise `NotImplementedError` instead.

  `url`(name)

    Returns the URL where the contents of the file referenced by `name` can be accessed. For storage systems that don't support access by URL this will raise `NotImplementedError` instead.