如何使用FPDF从AWS bucket下载图像以生成PDF?

2024-04-27 00:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个FPDF对象:

import fpdf

pdf = FPDF()

#Cover page
pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.cell(175, 10, 'TEST - report',0,1,'C')

我试图直接使用AWS S3 bucket中的.png文件生成PDF,如下所示:

pdf.image(bucket_folder_name + '/' + file_name + '.png')

不幸的是,我得到了一个错误:

[Errno 2] No such file or directory

问题是什么


Tags: 对象nameimportaddbucketpdfpngpage
1条回答
网友
1楼 · 发布于 2024-04-27 00:22:04

要使用S3存储桶中的文件,您需要先下载它们-S3存储桶不像本地文件夹,您无法提供路径并使用文件

首先使用^{}下载文件,然后将文件名传递给pdf.image(...)

download_file方法具有以下参数:

s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

大概是这样的:

import boto3
s3 = boto3.client('s3')
...

filename_with_extension = file_name + '.png';
outputPath = '/tmp/' + filename_with_extension;

s3.download_file(bucket_folder_name, filename_with_extension, outputPath)

pdf.image(outputPath)

重要提示:您必须写入/tmp目录,因为这是AWS允许您写入(和读取)的唯一可用文件系统

任何其他路径都将导致[Errno 13] Permission denied错误来指示这一点

docs

Your function code can access a writable /tmp directory storage of 512 MB.

相关问题 更多 >