使用 django rest Framework 和 postman 检索文件

Retrieving files using django rest Framework and postman

提问人:Ekansh Thakur 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19

问:

我正在制作一个安全的文件存储系统,在解密过程中,用户将file_id和密钥作为输入。程序找到文件,读取其数据并使用密钥对其进行解密,然后使用新的加密数据重写文件的文件数据并返回文件。 我正在为此使用 django rest 框架。 视图的代码如下:

class Decryption(APIView):

    def post(self, request, *args, **kwargs):
        file_id = request.data.get('file_id')
        key = request.data.get('key')
        try:
            if not key:
                return Response({"error": "Key is required"}, status= status.HTTP_400_BAD_REQUEST)
            try:
                encrypted_file = EncryptedFile.objects.get(id = file_id)
            except EncryptedFile.DoesNotExist:
                return Response({'detail': "The requested File doesn't exist"}, status= status.HTTP_404_NOT_FOUND)
            
            encrypted_data = encrypted_file.file.read()

            cipher = Fernet(key)
            decrypted_data = cipher.decrypt(encrypted_data)

            encrypted_file.file.seek(0)
            #encrypted_file.file.write(decrypted_data)

            response = Response()
            response['Content-Disposition'] = f'attachment: filename = {encrypted_file.file_name}'
            response.write(decrypted_data)
            return response
        except Exception as e:
            return Response({'details': e}, status= status.HTTP_400_BAD_REQUEST)

结果,我期待一个文件。但是当我使用 postman 进行 API 调用时,我得到了一个空白屏幕

python-3.x django django-rest-framework postman 后端

评论


答: 暂无答案