From c4b41829d3ab85a1e2a03a8fd9519d939a4c7133 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 18 May 2023 03:04:12 +0000 Subject: automatic import of python-django-s3sign --- python-django-s3sign.spec | 466 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) create mode 100644 python-django-s3sign.spec (limited to 'python-django-s3sign.spec') diff --git a/python-django-s3sign.spec b/python-django-s3sign.spec new file mode 100644 index 0000000..e6b5f99 --- /dev/null +++ b/python-django-s3sign.spec @@ -0,0 +1,466 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-s3sign +Version: 0.3.3 +Release: 1 +Summary: Django view for AWS S3 signing +License: GPL3 +URL: https://github.com/ccnmtl/django-s3sign +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5f/ae/e6399913463097bc617d5c676b89c4d5a81530a2a48dc1c6b0e2d49f5896/django-s3sign-0.3.3.tar.gz +BuildArch: noarch + +Requires: python3-Django +Requires: python3-nose +Requires: python3-boto3 +Requires: python3-botocore + +%description +[![Build Status](https://travis-ci.org/ccnmtl/django-s3sign.svg?branch=master)](https://travis-ci.org/ccnmtl/django-s3sign) +[![Coverage Status](https://coveralls.io/repos/github/ccnmtl/django-s3sign/badge.svg?branch=master)](https://coveralls.io/github/ccnmtl/django-s3sign?branch=master) + +# django-s3sign +s3 sign view for django + +## installation + + $ pip install django-s3sign + +## usage + +Add `s3sign` to `INSTALLED_APPS`. Subclass `s3sign.views.SignS3View` +and override as needed. + +Attributes you can override (and their default values): + +``` + name_field = 's3_object_name' + type_field = 's3_object_type' + expiration_time = 10 + mime_type_extensions = [ + ('bmp', '.bmp'), + ('gif', '.gif'), + ('jpeg', '.jpg'), + ('pdf', '.pdf'), + ('png', '.png'), + ('svg', '.svg'), + ('webp', '.webp'), + ] + default_extension = '.obj' + root = '' + path_string = ( + "{root}{now.year:04d}/{now.month:02d}/" + "{now.day:02d}/{basename}{extension}") + acl = "public-read" +``` + +Methods you can override: + +* `get_aws_access_key(self)` +* `get_aws_secret_key(self)` +* `get_bucket(self)` +* `get_mimetype(self, request)` +* `extension_from_mimetype(self, mime_type)` +* `now(self)` # useful for unit tests +* `now_time(self)` # useful for unit tests +* `basename(self)` +* `get_object_name(self, extension)` + +Most of those should be clear. Read the source if in doubt. + + +Eg to use a different root path: + + +``` +from s3sign.views import SignS3View +... + +class MySignS3View(LoggedInView, SignS3View): + root = 'uploads/' +``` + +With a different S3 bucket: + +``` +class MySignS3View(LoggedInView, SignS3View): + def get_bucket(self): + return settings.DIFFERENT_BUCKET_NAME +``` + +Keeping the uploaded filename instead of doing a random one and +whitelisted extension: + +``` +class MySignS3View(LoggedInView, SignS3View): + def basename(self, request): + filename = request.GET[self.get_name_field()] + return os.path.basename(filename) + + def extension(self, request): + filename = request.GET[self.get_name_field()] + return os.path.splitext(filename)[1] +``` + + +### javascript/forms + +The required javascript is also included, so you can include it in +your page with: + + {% load static %} + + + +Your form would then somewhere have a bit like: + +
+

+ Please select a file +

+ + + +
+ +And + +``` + +``` + + +%package -n python3-django-s3sign +Summary: Django view for AWS S3 signing +Provides: python-django-s3sign +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-s3sign +[![Build Status](https://travis-ci.org/ccnmtl/django-s3sign.svg?branch=master)](https://travis-ci.org/ccnmtl/django-s3sign) +[![Coverage Status](https://coveralls.io/repos/github/ccnmtl/django-s3sign/badge.svg?branch=master)](https://coveralls.io/github/ccnmtl/django-s3sign?branch=master) + +# django-s3sign +s3 sign view for django + +## installation + + $ pip install django-s3sign + +## usage + +Add `s3sign` to `INSTALLED_APPS`. Subclass `s3sign.views.SignS3View` +and override as needed. + +Attributes you can override (and their default values): + +``` + name_field = 's3_object_name' + type_field = 's3_object_type' + expiration_time = 10 + mime_type_extensions = [ + ('bmp', '.bmp'), + ('gif', '.gif'), + ('jpeg', '.jpg'), + ('pdf', '.pdf'), + ('png', '.png'), + ('svg', '.svg'), + ('webp', '.webp'), + ] + default_extension = '.obj' + root = '' + path_string = ( + "{root}{now.year:04d}/{now.month:02d}/" + "{now.day:02d}/{basename}{extension}") + acl = "public-read" +``` + +Methods you can override: + +* `get_aws_access_key(self)` +* `get_aws_secret_key(self)` +* `get_bucket(self)` +* `get_mimetype(self, request)` +* `extension_from_mimetype(self, mime_type)` +* `now(self)` # useful for unit tests +* `now_time(self)` # useful for unit tests +* `basename(self)` +* `get_object_name(self, extension)` + +Most of those should be clear. Read the source if in doubt. + + +Eg to use a different root path: + + +``` +from s3sign.views import SignS3View +... + +class MySignS3View(LoggedInView, SignS3View): + root = 'uploads/' +``` + +With a different S3 bucket: + +``` +class MySignS3View(LoggedInView, SignS3View): + def get_bucket(self): + return settings.DIFFERENT_BUCKET_NAME +``` + +Keeping the uploaded filename instead of doing a random one and +whitelisted extension: + +``` +class MySignS3View(LoggedInView, SignS3View): + def basename(self, request): + filename = request.GET[self.get_name_field()] + return os.path.basename(filename) + + def extension(self, request): + filename = request.GET[self.get_name_field()] + return os.path.splitext(filename)[1] +``` + + +### javascript/forms + +The required javascript is also included, so you can include it in +your page with: + + {% load static %} + + + +Your form would then somewhere have a bit like: + +
+

+ Please select a file +

+ + + +
+ +And + +``` + +``` + + +%package help +Summary: Development documents and examples for django-s3sign +Provides: python3-django-s3sign-doc +%description help +[![Build Status](https://travis-ci.org/ccnmtl/django-s3sign.svg?branch=master)](https://travis-ci.org/ccnmtl/django-s3sign) +[![Coverage Status](https://coveralls.io/repos/github/ccnmtl/django-s3sign/badge.svg?branch=master)](https://coveralls.io/github/ccnmtl/django-s3sign?branch=master) + +# django-s3sign +s3 sign view for django + +## installation + + $ pip install django-s3sign + +## usage + +Add `s3sign` to `INSTALLED_APPS`. Subclass `s3sign.views.SignS3View` +and override as needed. + +Attributes you can override (and their default values): + +``` + name_field = 's3_object_name' + type_field = 's3_object_type' + expiration_time = 10 + mime_type_extensions = [ + ('bmp', '.bmp'), + ('gif', '.gif'), + ('jpeg', '.jpg'), + ('pdf', '.pdf'), + ('png', '.png'), + ('svg', '.svg'), + ('webp', '.webp'), + ] + default_extension = '.obj' + root = '' + path_string = ( + "{root}{now.year:04d}/{now.month:02d}/" + "{now.day:02d}/{basename}{extension}") + acl = "public-read" +``` + +Methods you can override: + +* `get_aws_access_key(self)` +* `get_aws_secret_key(self)` +* `get_bucket(self)` +* `get_mimetype(self, request)` +* `extension_from_mimetype(self, mime_type)` +* `now(self)` # useful for unit tests +* `now_time(self)` # useful for unit tests +* `basename(self)` +* `get_object_name(self, extension)` + +Most of those should be clear. Read the source if in doubt. + + +Eg to use a different root path: + + +``` +from s3sign.views import SignS3View +... + +class MySignS3View(LoggedInView, SignS3View): + root = 'uploads/' +``` + +With a different S3 bucket: + +``` +class MySignS3View(LoggedInView, SignS3View): + def get_bucket(self): + return settings.DIFFERENT_BUCKET_NAME +``` + +Keeping the uploaded filename instead of doing a random one and +whitelisted extension: + +``` +class MySignS3View(LoggedInView, SignS3View): + def basename(self, request): + filename = request.GET[self.get_name_field()] + return os.path.basename(filename) + + def extension(self, request): + filename = request.GET[self.get_name_field()] + return os.path.splitext(filename)[1] +``` + + +### javascript/forms + +The required javascript is also included, so you can include it in +your page with: + + {% load static %} + + + +Your form would then somewhere have a bit like: + +
+

+ Please select a file +

+ + + +
+ +And + +``` + +``` + + +%prep +%autosetup -n django-s3sign-0.3.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-s3sign -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot - 0.3.3-1 +- Package Spec generated -- cgit v1.2.3