示例#1
0
    def post(self, dataset):
        '''Upload a new resource'''
        args = upload_parser.parse_args()

        storage = storages.resources

        prefix = self.get_prefix(dataset)

        file = args['file']
        filename = storage.save(file, prefix=prefix)

        extension = fileutils.extension(filename)

        file.seek(0)
        sha1 = storages.utils.sha1(file)

        size = os.path.getsize(storage.path(filename)) if storage.root else None

        resource = Resource(
            title=os.path.basename(filename),
            url=storage.url(filename, external=True),
            checksum=Checksum(value=sha1),
            format=extension,
            mime=storages.utils.mime(filename),
            size=size
        )
        dataset.add_resource(resource)
        return resource, 201
示例#2
0
    def post(self, dataset):
        if not 'file' in request.files:
            return jsonify({
                'success': False,
                'error': '"file" should be set'
            }), 400

        storage = storages.resources

        prefix = self.get_prefix(dataset)

        file = request.files['file']
        filename = storage.save(file, prefix=prefix)

        extension = fileutils.extension(filename)

        file.seek(0)
        sha1 = storages.utils.sha1(file)

        size = os.path.getsize(
            storage.path(filename)) if storage.root else None

        return jsonify({
            'success': True,
            'url': storage.url(filename, external=True),
            'filename': filename,
            'sha1': sha1,
            'format': extension,
            'size': size,
            'mime': storages.utils.mime(filename),
        })
示例#3
0
文件: views.py 项目: grouan/udata
    def post(self, dataset):
        if 'file' not in request.files:
            return jsonify({
                'success': False, 'error': '"file" should be set'}), 400

        storage = storages.resources

        prefix = self.get_prefix(dataset)

        file = request.files['file']
        filename = storage.save(file, prefix=prefix)

        extension = fileutils.extension(filename)

        file.seek(0)
        sha1 = storages.utils.sha1(file)

        size = (os.path.getsize(storage.path(filename))
                if storage.root else None)

        return jsonify({
            'success': True,
            'url': storage.url(filename, external=True),
            'filename': filename,
            'sha1': sha1,
            'format': extension,
            'size': size,
            'mime': storages.utils.mime(filename),
        })
示例#4
0
文件: api.py 项目: simudream/udata
 def extract_infos_from_args(self, args, dataset):
     prefix = '/'.join(
         (dataset.slug, datetime.now().strftime('%Y%m%d-%H%M%S')))
     storage = storages.resources
     uploaded_file = args['file']
     filename = storage.save(uploaded_file, prefix=prefix)
     extension = fileutils.extension(filename)
     uploaded_file.seek(0)
     sha1 = storages.utils.sha1(uploaded_file)
     filesize = (os.path.getsize(storage.path(filename))
                 if storage.root else None)
     return {
         'title': os.path.basename(filename),
         'url': storage.url(filename, external=True),
         'checksum': Checksum(value=sha1),
         'format': extension,
         'mime': storages.utils.mime(filename),
         'filesize': filesize
     }
示例#5
0
文件: api.py 项目: javanna2000/udata
 def extract_infos_from_args(self, args, dataset):
     prefix = '/'.join((dataset.slug,
                        datetime.now().strftime('%Y%m%d-%H%M%S')))
     storage = storages.resources
     uploaded_file = args['file']
     filename = storage.save(uploaded_file, prefix=prefix)
     extension = fileutils.extension(filename)
     uploaded_file.seek(0)
     sha1 = storages.utils.sha1(uploaded_file)
     filesize = (os.path.getsize(storage.path(filename))
                 if storage.root else None)
     return {
         'title': os.path.basename(filename),
         'url': storage.url(filename, external=True),
         'checksum': Checksum(value=sha1),
         'format': extension,
         'mime': storages.utils.mime(filename),
         'filesize': filesize
     }
示例#6
0
 def test_default(self):
     self.assertEqual(fileutils.extension('test.txt'), 'txt')
     self.assertEqual(fileutils.extension('prefix/test.txt'), 'txt')
     self.assertEqual(fileutils.extension('prefix.with.dot/test.txt'),
                      'txt')
示例#7
0
 def test_no_extension(self):
     self.assertEqual(fileutils.extension('test'), None)
     self.assertEqual(fileutils.extension('prefix/test'), None)
示例#8
0
 def test_compound(self):
     self.assertEqual(fileutils.extension('test.tar.gz'), 'tar.gz')
     self.assertEqual(fileutils.extension('prefix.with.dot/test.tar.gz'),
                      'tar.gz')