s3 support for images

This commit is contained in:
vabene1111
2021-05-26 16:35:48 +02:00
parent c851b54a22
commit 58f841a770
3 changed files with 24 additions and 7 deletions

View File

@ -57,9 +57,8 @@ class Integration:
recipe_stream.write(data) recipe_stream.write(data)
recipe_zip_obj.writestr(filename, recipe_stream.getvalue()) recipe_zip_obj.writestr(filename, recipe_stream.getvalue())
recipe_stream.close() recipe_stream.close()
try: try:
recipe_zip_obj.write(r.image.path, 'image.png') recipe_zip_obj.writestr('image.png', r.image.file.read())
except ValueError: except ValueError:
pass pass
@ -147,10 +146,13 @@ class Integration:
il.msg += f'{recipe.pk} - {recipe.name} \n' il.msg += f'{recipe.pk} - {recipe.name} \n'
self.handle_duplicates(recipe, import_duplicates) self.handle_duplicates(recipe, import_duplicates)
except BadZipFile: except BadZipFile:
il.msg += 'ERROR ' + _('Importer expected a .zip file. Did you choose the correct importer type for your data ?') + '\n' il.msg += 'ERROR ' + _(
'Importer expected a .zip file. Did you choose the correct importer type for your data ?') + '\n'
if len(self.ignored_recipes) > 0: if len(self.ignored_recipes) > 0:
il.msg += '\n' + _('The following recipes were ignored because they already existed:') + ' ' + ', '.join(self.ignored_recipes) + '\n\n' il.msg += '\n' + _(
'The following recipes were ignored because they already existed:') + ' ' + ', '.join(
self.ignored_recipes) + '\n\n'
il.keyword = self.keyword il.keyword = self.keyword
il.msg += (_('Imported %s recipes.') % Recipe.objects.filter(keywords=self.keyword).count()) + '\n' il.msg += (_('Imported %s recipes.') % Recipe.objects.filter(keywords=self.keyword).count()) + '\n'

View File

@ -287,6 +287,20 @@ JS_REVERSE_SCRIPT_PREFIX = os.getenv('JS_REVERSE_SCRIPT_PREFIX', os.getenv('SCRI
STATIC_URL = os.getenv('STATIC_URL', '/static/') STATIC_URL = os.getenv('STATIC_URL', '/static/')
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
if os.getenv('S3_ACCESS_KEY', ''):
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_ACCESS_KEY_ID = os.getenv('S3_ACCESS_KEY', '')
AWS_SECRET_ACCESS_KEY = os.getenv('S3_SECRET_ACCESS_KEY', '')
AWS_STORAGE_BUCKET_NAME = os.getenv('S3_BUCKET_NAME', '')
AWS_QUERYSTRING_AUTH = True
if os.getenv('S3_ENDPOINT_URL', ''):
AWS_S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL', '')
MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
else:
MEDIA_URL = os.getenv('MEDIA_URL', '/media/') MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles") MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
@ -295,7 +309,6 @@ STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
TEST_RUNNER = "cookbook.helper.CustomTestRunner.CustomTestRunner" TEST_RUNNER = "cookbook.helper.CustomTestRunner.CustomTestRunner"
# settings for cross site origin (CORS) # settings for cross site origin (CORS)
# all origins allowed to support bookmarklet # all origins allowed to support bookmarklet
# all of this may or may not work with nginx or other web servers # all of this may or may not work with nginx or other web servers

View File

@ -36,3 +36,5 @@ django-scopes==1.2.0
pytest==6.2.4 pytest==6.2.4
pytest-django==4.3.0 pytest-django==4.3.0
django-cors-headers==3.7.0 django-cors-headers==3.7.0
django-storages==1.11.1
boto3==1.17.80