def attach_file_internal(report, file_ext, mime_type): object_name = f'{str(report.id)}/{str(uuid.uuid1())}.{file_ext}' signed_request = create_signed_request_boto3( mime_type, object_name, settings.AWS_STORAGE_BUCKET_NAME) attachment = Attachment(report=report) attachment.attachment.name = object_name attachment.save() return signed_request
def attach_file_internal(report, file_ext, mime_type, extra_comma=False): object_name = '%s/%s.%s' % (str(report.id), str(uuid.uuid1()), file_ext) signed_request = create_signed_request(mime_type, object_name, settings.AWS_STORAGE_BUCKET_NAME, extra_comma) attachment = Attachment(report=report) attachment.attachment.name = object_name attachment.save() return signed_request
def attach_file(request): device_id = request.GET['device_id'] report_id = request.GET['report_id'] report = Report.objects.get(pk=report_id) if report.client != device_id: return HttpResponseForbidden("Device_id mismatch") attachment = Attachment(attachment=request.FILES['file'], report=report) file_name, file_extension = os.path.splitext(attachment.attachment.name) attachment.attachment.name = str(uuid.uuid1()) + file_extension attachment.save() return JsonResponse({'id': attachment.id})
def attach_file_internal(report, file_ext, mime_type): object_name = '%s/%s.%s' % (str(report.id), str(uuid.uuid1()), file_ext) expires = int(time.time()+60*60*24) amz_headers = "x-amz-acl:public-read" string_to_sign = "PUT\n\n%s\n%d\n%s\n/%s/%s" % \ (mime_type, expires, amz_headers, settings.AWS_STORAGE_BUCKET_NAME, object_name) signature = base64.encodestring( hmac.new(settings.AWS_SECRET_ACCESS_KEY.encode(), string_to_sign.encode('utf8'), sha1).digest()) signature = urllib.quote_plus(signature.strip()) url = 'https://%s.s3.amazonaws.com/%s' % (settings.AWS_STORAGE_BUCKET_NAME, object_name) signed_request = '%s?AWSAccessKeyId=%s&Expires=%s&Signature=%s' % \ (url, settings.AWS_ACCESS_KEY_ID, expires, signature), attachment = Attachment(report=report) attachment.attachment.name = object_name attachment.save() return signed_request