Python django.core.files.base.File() Examples
The following are 30
code examples of django.core.files.base.File().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
django.core.files.base
, or try the search function
.
![](https://www.programcreek.com/common/static/images/search.png)
Example #1
Source File: backends.py From django-qiniu-storage with MIT License | 6 votes |
def listdir(self, name): name = self._normalize_name(self._clean_name(name)) if name and not name.endswith('/'): name += '/' dirlist = bucket_lister(self.bucket_manager, self.bucket_name, prefix=name) files = [] dirs = set() base_parts = name.split("/")[:-1] for item in dirlist: parts = item['key'].split("/") parts = parts[len(base_parts):] if len(parts) == 1: # File files.append(parts[0]) elif len(parts) > 1: # Directory dirs.add(parts[0]) return list(dirs), files
Example #2
Source File: azure_storage.py From django-storages with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _get_valid_path(s): # A blob name: # * must not end with dot or slash # * can contain any character # * must escape URL reserved characters # (not needed here since the azure client will do that) s = s.strip('./') if len(s) > _AZURE_NAME_MAX_LEN: raise ValueError( "File name max len is %d" % _AZURE_NAME_MAX_LEN) if not len(s): raise ValueError( "File name must contain one or more " "printable characters") if s.count('/') > 256: raise ValueError( "File name must not contain " "more than 256 slashes") return s # Max len according to azure's docs
Example #3
Source File: google_sheets.py From django-collaborative with MIT License | 6 votes |
def __init__(self, credentials): """ Initialize a Google Private sheets reader service, given a service account credentials JSON. The credentials can either be a dict, JSON string or file (bytes). This routine will do all the proper conversions for internal use. """ # file upload, parsed if isinstance(credentials, bytes): credentials = json.loads(credentials.decode("utf-8")) elif isinstance(credentials, File): credentials = json.loads(credentials.read().decode("utf-8")) # JSON string, as stored in the DB elif isinstance(credentials, str): credentials = json.loads(credentials) # we need to have a decoded credentials dict by here creds = service_account.Credentials.from_service_account_info( credentials, scopes=self.SCOPES ) # TODO: catch authentication error, return friendly msg. (we # might we need to do this above as well) self.service = discovery.build("sheets", "v4", credentials=creds)
Example #4
Source File: simple.py From django-sendfile2 with BSD 3-Clause "New" or "Revised" License | 6 votes |
def sendfile(request, filepath, **kwargs): '''Use the SENDFILE_ROOT value composed with the path arrived as argument to build an absolute path with which resolve and return the file contents. If the path points to a file out of the root directory (should cover both situations with '..' and symlinks) then a 404 is raised. ''' statobj = filepath.stat() # Respect the If-Modified-Since header. if not was_modified_since(request.META.get('HTTP_IF_MODIFIED_SINCE'), statobj.st_mtime, statobj.st_size): return HttpResponseNotModified() with File(filepath.open('rb')) as f: response = HttpResponse(f.chunks()) response["Last-Modified"] = http_date(statobj.st_mtime) return response
Example #5
Source File: s3boto3.py From django-storages with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _create_empty_on_close(self): """ Attempt to create an empty file for this key when this File is closed if no bytes have been written and no object already exists on S3 for this key. This behavior is meant to mimic the behavior of Django's builtin FileSystemStorage, where files are always created after they are opened in write mode: f = storage.open("file.txt", mode="w") f.close() """ assert "w" in self._mode assert self._raw_bytes_written == 0 try: # Check if the object exists on the server; if so, don't do anything self.obj.load() except ClientError as err: if err.response["ResponseMetadata"]["HTTPStatusCode"] == 404: self.obj.put( Body=b"", **self._storage._get_write_parameters(self.obj.key) ) else: raise
Example #6
Source File: admin.py From weixin_server with MIT License | 6 votes |
def add_view(self, request, form_url='', extra_context=None): # Prepopulate new configuration entries with the value of the current config, if given: if 'source' in request.GET: get = request.GET.copy() source_id = int(get.pop('source')[0]) source = get_object_or_404(self.model, pk=source_id) source_dict = models.model_to_dict(source) for field_name, field_value in source_dict.items(): # read files into request.FILES, if: # * user hasn't ticked the "clear" checkbox # * user hasn't uploaded a new file if field_value and isinstance(field_value, File): clear_checkbox_name = '{0}-clear'.format(field_name) if request.POST.get(clear_checkbox_name) != 'on': request.FILES.setdefault(field_name, field_value) get[field_name] = field_value request.GET = get # Call our grandparent's add_view, skipping the parent code # because the parent code has a different way to prepopulate new configuration entries # with the value of the latest config, which doesn't make sense for keyed models. # pylint: disable=bad-super-call return super(ConfigurationModelAdmin, self).add_view(request, form_url, extra_context)
Example #7
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_file_save_without_name(self): """ File storage extracts the filename from the content object if no name is given explicitly. """ self.assertFalse(self.storage.exists('test.file')) f = ContentFile('custom contents') f.name = 'test.file' storage_f_name = self.storage.save(None, f) self.assertEqual(storage_f_name, f.name) self.assertTrue(os.path.exists(os.path.join(self.temp_dir, f.name))) self.storage.delete(storage_f_name)
Example #8
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_listdir(self): """ File storage returns a tuple containing directories and files. """ self.assertFalse(self.storage.exists('storage_test_1')) self.assertFalse(self.storage.exists('storage_test_2')) self.assertFalse(self.storage.exists('storage_dir_1')) self.storage.save('storage_test_1', ContentFile('custom content')) self.storage.save('storage_test_2', ContentFile('custom content')) os.mkdir(os.path.join(self.temp_dir, 'storage_dir_1')) dirs, files = self.storage.listdir('') self.assertEqual(set(dirs), {'storage_dir_1'}) self.assertEqual(set(files), {'storage_test_1', 'storage_test_2'}) self.storage.delete('storage_test_1') self.storage.delete('storage_test_2') os.rmdir(os.path.join(self.temp_dir, 'storage_dir_1'))
Example #9
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def test_file_get_created_time(self): """ File storage returns a datetime for the creation time of a file. """ self.assertFalse(self.storage.exists('test.file')) f = ContentFile('custom contents') f_name = self.storage.save('test.file', f) self.addCleanup(self.storage.delete, f_name) ctime = self.storage.get_created_time(f_name) self.assertEqual(ctime, datetime.fromtimestamp(os.path.getctime(self.storage.path(f_name)))) self.assertLess(timezone.now() - self.storage.get_created_time(f_name), timedelta(seconds=2))
Example #10
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def test_file_get_modified_time(self): """ File storage returns a datetime for the last modified time of a file. """ self.assertFalse(self.storage.exists('test.file')) f = ContentFile('custom contents') f_name = self.storage.save('test.file', f) self.addCleanup(self.storage.delete, f_name) mtime = self.storage.get_modified_time(f_name) self.assertEqual(mtime, datetime.fromtimestamp(os.path.getmtime(self.storage.path(f_name)))) self.assertLess(timezone.now() - self.storage.get_modified_time(f_name), timedelta(seconds=2))
Example #11
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def test_file_path(self): """ File storage returns the full path of a file """ self.assertFalse(self.storage.exists('test.file')) f = ContentFile('custom contents') f_name = self.storage.save('test.file', f) self.assertEqual(self.storage.path(f_name), os.path.join(self.temp_dir, f_name)) self.storage.delete(f_name)
Example #12
Source File: storage.py From django-cloudinary-storage with MIT License | 5 votes |
def hashed_name(self, name, content=None, filename=None): parsed_name = urlsplit(unquote(name)) clean_name = parsed_name.path.strip() opened = False if content is None: absolute_path = finders.find(clean_name) try: content = open(absolute_path, 'rb') except (IOError, OSError) as e: if e.errno == errno.ENOENT: raise ValueError("The file '%s' could not be found with %r." % (clean_name, self)) else: raise content = File(content) opened = True try: file_hash = self.file_hash(clean_name, content) finally: if opened: content.close() path, filename = os.path.split(clean_name) root, ext = os.path.splitext(filename) if file_hash is not None: file_hash = ".%s" % file_hash hashed_name = os.path.join(path, "%s%s%s" % (root, file_hash, ext)) unparsed_name = list(parsed_name) unparsed_name[2] = hashed_name # Special casing for a @font-face hack, like url(myfont.eot?#iefix") # http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax if '?#' in name and not unparsed_name[3]: unparsed_name[2] += '?' return urlunsplit(unparsed_name)
Example #13
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def test_base_url(self): """ File storage returns a url even when its base_url is unset or modified. """ self.storage.base_url = None with self.assertRaises(ValueError): self.storage.url('test.file') # #22717: missing ending slash in base_url should be auto-corrected storage = self.storage_class(location=self.temp_dir, base_url='/no_ending_slash') self.assertEqual( storage.url('test.file'), '%s%s' % (storage.base_url, 'test.file') )
Example #14
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def test_file_storage_prevents_directory_traversal(self): """ File storage prevents directory traversal (files can only be accessed if they're below the storage location). """ with self.assertRaises(SuspiciousFileOperation): self.storage.exists('..') with self.assertRaises(SuspiciousFileOperation): self.storage.exists('/etc/passwd')
Example #15
Source File: import_emoji.py From django-demo-app-unicodex with Apache License 2.0 | 5 votes |
def handle(self, *args, **options): cp = Codepoint.objects.get(codepoint=options["codepoint"]) vv = VendorVersion.objects.get(id=options["vendor_version_id"]) img = open(options["image_file"], "rb") d = Design.objects.create(codepoint=cp, vendorversion=vv, image=File(img)) d.save() print(f"Added design for {cp.name}, {vv.vendor.name} {vv.name}")
Example #16
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def test_file_get_accessed_time(self): """ File storage returns a Datetime object for the last accessed time of a file. """ self.assertFalse(self.storage.exists('test.file')) f = ContentFile('custom contents') f_name = self.storage.save('test.file', f) self.addCleanup(self.storage.delete, f_name) atime = self.storage.get_accessed_time(f_name) self.assertEqual(atime, datetime.fromtimestamp(os.path.getatime(self.storage.path(f_name)))) self.assertLess(timezone.now() - self.storage.get_accessed_time(f_name), timedelta(seconds=2))
Example #17
Source File: azure_storage.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def write(self, content): if ('w' not in self._mode and '+' not in self._mode and 'a' not in self._mode): raise AttributeError("File was not opened in write mode.") self._is_dirty = True return super().write(force_bytes(content))
Example #18
Source File: s3boto3.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def readline(self, *args, **kwargs): if 'r' not in self._mode: raise AttributeError("File was not opened in read mode.") return self._force_mode(super().readline(*args, **kwargs))
Example #19
Source File: test_sftp.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_save(self, mock_sftp): self.storage._save('foo', File(io.BytesIO(b'foo'), 'foo')) self.assertTrue(mock_sftp.open.return_value.write.called)
Example #20
Source File: s3boto3.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def read(self, *args, **kwargs): if 'r' not in self._mode: raise AttributeError("File was not opened in read mode.") return self._force_mode(super().read(*args, **kwargs))
Example #21
Source File: sftpstorage.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def write(self, content): if 'w' not in self.mode: raise AttributeError("File was opened for read-only access.") self.file = io.BytesIO(content) self._is_dirty = True self._is_read = True
Example #22
Source File: apache_libcloud.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def write(self, content): if 'w' not in self._mode: raise AttributeError("File was opened for read-only access.") self.file = io.BytesIO(content) self._is_dirty = True
Example #23
Source File: gcloud.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _get_blob(self, name): # Wrap google.cloud.storage's blob to raise if the file doesn't exist blob = self.bucket.get_blob(name) if blob is None: raise NotFound('File does not exist: {}'.format(name)) return blob
Example #24
Source File: gcloud.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def write(self, content): if 'w' not in self._mode: raise AttributeError("File was not opened in write mode.") self._is_dirty = True return super().write(force_bytes(content))
Example #25
Source File: gcloud.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def read(self, num_bytes=None): if 'r' not in self._mode: raise AttributeError("File was not opened in read mode.") if num_bytes is None: num_bytes = -1 return super().read(num_bytes)
Example #26
Source File: ftp.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def write(self, content): if 'w' not in self._mode: raise AttributeError("File was opened for read-only access.") self.file = io.BytesIO(content) self._is_dirty = True self._is_read = True
Example #27
Source File: test_ftp.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_save(self, mock_ftp): self.storage._save('foo', File(io.BytesIO(b'foo'), 'foo'))
Example #28
Source File: test_ftp.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_put_file_error(self, mock_ftp): self.storage._start_connection() with self.assertRaises(ftp.FTPStorageException): self.storage._put_file('foo', File(io.BytesIO(b'foo'), 'foo'))
Example #29
Source File: test_sftp.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_save_in_subdir(self, mock_sftp): self.storage._save('bar/foo', File(io.BytesIO(b'foo'), 'foo')) self.assertEqual(mock_sftp.mkdir.call_args_list[0][0], ('bar',)) self.assertTrue(mock_sftp.open.return_value.write.called)
Example #30
Source File: test_dropbox.py From django-storages with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_save(self, files_upload, *args): self.storage._save('foo', File(io.BytesIO(b'bar'), 'foo')) self.assertTrue(files_upload.called)