コード例 #1
0
    def handle(self, *args, **kwargs):
        for screenshot in models.Screenshot.load():
            print screenshot.name
            img = Image.open(staticfiles_storage.path(screenshot.path))

            # Ensure we're in RGB
            if img.mode not in ('L', 'RGB'):
                img = img.convert('RGB')

            # Magic!
            # The thumbnail is only limited by width, so use
            # a larger-than-needed height.
            img.thumbnail((200 * screenshot.screens, 1000), Image.ANTIALIAS)

            # Save the thumbnail to a tmpfile
            fd, tmp = tempfile.mkstemp()
            file = os.fdopen(fd, 'w+b')
            type = mimetypes.guess_type(screenshot.name)[0].split('/')[1]
            img.save(file, type)
            file.close()

            # Nuke previous version if it exists
            if staticfiles_storage.exists(screenshot.thumbnail):
                staticfiles_storage.delete(screenshot.thumbnail)

            # save thumbnail to stattic dir
            file = File(open(tmp, 'rb'))
            staticfiles_storage.save(screenshot.thumbnail, file)
            file.close()
            os.unlink(tmp)
コード例 #2
0
 def handle(self, *args, **options):
     locale = options["locale"]
     content = generate_js(locale)
     file_name = staticfiles_storage.path(f"choices-{locale}.js")
     if staticfiles_storage.exists(file_name):
         staticfiles_storage.delete(file_name)
     staticfiles_storage.save(file_name, ContentFile(content))
     self.stdout.write(f"{file_name} saved to static root!")
コード例 #3
0
 def copy_files_to_original_staticfiles_storage(self, paths, dry_run = False):
     if dry_run:
         return {}
     new_paths = SortedDict()
     for name in sorted(paths.keys(), key=path_level, reverse=True):
         if name not in new_paths:
             staticfiles_storage.save(name, self.open(name))
             new_paths[name] = (self, name)
     return new_paths
コード例 #4
0
    def handle(self, *args, **options):
        local_storage = StaticFilesStorage()
        base_path = local_storage.base_location

        # Ignore files in our ignore patterns
        ignore_patterns = getattr(settings, 'SYNCSTATIC_IGNORE_PATTERNS', None)
        files = set(utils.get_files(local_storage, ignore_patterns=ignore_patterns))

        # Remove any files that went into compilation
        files -= set(settings.PIPELINE_JS['main']['source_filenames'])
        files -= set(settings.PIPELINE_CSS['main']['source_filenames'])

        for file in files:
            print('syncing to s3: %s' % file)
            staticfiles_storage.save(file, local_storage.open(file, 'r'))
コード例 #5
0
    def handle(self, *args, **options):
        local_storage = StaticFilesStorage()
        base_path = local_storage.base_location

        # Ignore files in our ignore patterns
        ignore_patterns = getattr(settings, 'SYNCSTATIC_IGNORE_PATTERNS', None)
        files = set(
            utils.get_files(local_storage, ignore_patterns=ignore_patterns))

        # Remove any files that went into compilation
        files -= set(settings.PIPELINE_JS['main']['source_filenames'])
        files -= set(settings.PIPELINE_CSS['main']['source_filenames'])

        for file in files:
            print('syncing to s3: %s' % file)
            staticfiles_storage.save(file, local_storage.open(file, 'r'))
コード例 #6
0
 def update_content(self, fileobj):
     staticfiles_storage.save(self.full_path, fileobj)