diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-18 03:04:12 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-18 03:04:12 +0000 |
commit | c4b41829d3ab85a1e2a03a8fd9519d939a4c7133 (patch) | |
tree | 12eb4e54a03a0dec9a4723e46eafe455df5e963d | |
parent | dbd7edfb9f322db8b3c1ba258836c779ece9adf8 (diff) |
automatic import of python-django-s3sign
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-s3sign.spec | 466 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 468 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-s3sign-0.3.3.tar.gz 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 +[](https://travis-ci.org/ccnmtl/django-s3sign) +[](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 %} + + <script src="{% static 's3sign/js/s3upload.js' %}"></script> + +Your form would then somewhere have a bit like: + + <form method="post"> + <p id="status"> + <strong>Please select a file</strong> + </p> + + <input type="hidden" name="s3_url" id="uploaded-url" /> + <input type="file" id="file" onchange="s3_upload();"/> + </form> + +And + +``` +<script> +function s3_upload() { + var s3upload = new S3Upload({ + file_dom_selector: 'file', + s3_sign_put_url: '/sign_s3/', // change this if you route differently + s3_object_name: $('#file')[0].value, + + onProgress: function(percent, message) { + $('#status').text('Upload progress: ' + percent + '% ' + message); + }, + onFinishS3Put: function(url) { + $('#uploaded-url').val(url); + }, + onError: function(status) { + $('#status').text('Upload error: ' + status); + } + }); +} +</script> +``` + + +%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 +[](https://travis-ci.org/ccnmtl/django-s3sign) +[](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 %} + + <script src="{% static 's3sign/js/s3upload.js' %}"></script> + +Your form would then somewhere have a bit like: + + <form method="post"> + <p id="status"> + <strong>Please select a file</strong> + </p> + + <input type="hidden" name="s3_url" id="uploaded-url" /> + <input type="file" id="file" onchange="s3_upload();"/> + </form> + +And + +``` +<script> +function s3_upload() { + var s3upload = new S3Upload({ + file_dom_selector: 'file', + s3_sign_put_url: '/sign_s3/', // change this if you route differently + s3_object_name: $('#file')[0].value, + + onProgress: function(percent, message) { + $('#status').text('Upload progress: ' + percent + '% ' + message); + }, + onFinishS3Put: function(url) { + $('#uploaded-url').val(url); + }, + onError: function(status) { + $('#status').text('Upload error: ' + status); + } + }); +} +</script> +``` + + +%package help +Summary: Development documents and examples for django-s3sign +Provides: python3-django-s3sign-doc +%description help +[](https://travis-ci.org/ccnmtl/django-s3sign) +[](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 %} + + <script src="{% static 's3sign/js/s3upload.js' %}"></script> + +Your form would then somewhere have a bit like: + + <form method="post"> + <p id="status"> + <strong>Please select a file</strong> + </p> + + <input type="hidden" name="s3_url" id="uploaded-url" /> + <input type="file" id="file" onchange="s3_upload();"/> + </form> + +And + +``` +<script> +function s3_upload() { + var s3upload = new S3Upload({ + file_dom_selector: 'file', + s3_sign_put_url: '/sign_s3/', // change this if you route differently + s3_object_name: $('#file')[0].value, + + onProgress: function(percent, message) { + $('#status').text('Upload progress: ' + percent + '% ' + message); + }, + onFinishS3Put: function(url) { + $('#uploaded-url').val(url); + }, + onError: function(status) { + $('#status').text('Upload error: ' + status); + } + }); +} +</script> +``` + + +%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 <Python_Bot@openeuler.org> - 0.3.3-1 +- Package Spec generated @@ -0,0 +1 @@ +f5c5081e4dc1ed22c8b26dec588a05a1 django-s3sign-0.3.3.tar.gz |