当前位置: 首页 > 知识库问答 >
问题:

S3 PutObject的无声失败?

左丘修齐
2023-03-14

我一直在尝试使用S3.Object.put()方法以编程方式将SNS消息上载到S3 bucket,如下所示:

bucket_resource=boto3.resource('s3')
bucket_client = boto3.client('s3')
body = subject + message
object = bucket_resource.Object(bucket_name, folder+'/'+fn)
object.put(Body=body)

这不起作用,所以我尝试了以下方法,尝试将一个对象上传到一个特定的S3 bucket。

body = subject + message
folder = datetime.datetime.today().strftime('%Y-%m-%d')
fn = datetime.datetime.today().strftime('%H:%M:%S')
key = folder_name + '/' + fn
bucket_resource = s3.Bucket(bucket_name)
bucket.upload_file(body, key)

然而,这两种方法都在默默地失败。我没有收到任何访问拒绝、错误消息等,但我也没有将我的消息上传到bucket。我不确定每次调用函数都会发生什么,希望能为那些通过编程成功地将文件上传到bucket的人提供指导。

注意:我有bucket策略,其中我的帐户是唯一可以将对象放入bucket的帐户。我是否需要一份附录来允许Lambda将物品放入桶中?

共有2个答案

习阳
2023-03-14

请参见此处的python错误处理。

基本上,围绕sdk调用尝试/捕获异常,大致如下:

import boto3
from botocore.exceptions import ClientError, ParamValidationError

try:
    bucket_resource=boto3.resource('s3')
    bucket_client = boto3.client('s3')
    body = subject + message
    object = bucket_resource.Object(bucket_name, folder+'/'+fn)
    object.put(Body=body)
except s3.exceptions.<fill in>:
    print("known error occured")
except ClientError as e:
    print("Unexpected error: %s" % e)

这是原始海报提供的链接,它显示了S3客户端可能出现的异常

杜骏祥
2023-03-14

对我来说也没有错误,但我正在使用.NET核心SDK。事实证明,我的问题是函数在能够将文件放入S3之前就完成了。在.NET SDK中,PutObject调用是异步的(PutObjectAsync),尽管我一直在等待它完成,但由于我拥有的函数层,结果证明我没有正确地完成。

对于那些在S3中没有错误和文件的人,请检查您的函数是否在文件实际上传到S3之前完成。

 类似资料:
  • 我正在努力调试一个NextJS API,该API正在开发中(通过本地主机),但在生产中悄无声息地失败。 下面,两个没有返回,所以我怀疑调用没有正确执行,可能会及时? 我不知道该怎么纠正,很高兴按指示调试解决这个问题!

  • 问题内容: 我有一个称为的对象,当通过进行转储时,返回以下内容: 从调用此对象回显结果将导致以下结果: 我假设单引号引起了某些问题,但是我不知道需要哪种格式才能转义。有任何想法吗? 编辑:修复了代码示例中的不匹配。我正在运行PHP版本5.3.8 EDIT2:在对对象进行编码后,我立即这样做: 此打印,表示发生以下错误:“格式错误的UTF-8字符,可能编码错误”。json_last_error()

  • null FxCop命令可以从jenkins以及声纳服务器上的命令行执行,但MsBuild faisl有此错误。 敬请建议。

  • 问题内容: 注意 :我已经搜索了很多,例如UITableViewDataSource方法的无效重新声明?不适用于我的情况。因为我的代码中没有重复的文件或类。 我的项目中只有一个AppDelegate.swift文件,文件中只有一个类。但是我有 我在AppDelegate.swift文件中也有以下代码。我得到以下错误。 注意 ,我在项目中使用了重复的类或变量声明,并且代码中只有一次声明。 问题答案:

  • 问题内容: 这是我的PHP sql语句,在var dump时返回false 问题答案: 有时您的PDO代码会产生类似或类似的错误。甚至没有任何错误,但查询不能完全一样。这意味着您的查询无法执行。 每次查询失败,MySQL都会显示一条错误消息, 说明原因 。不幸的是,默认情况下,此类错误不会转移到PHP,并且您所拥有的只是上面提到的无提示或神秘的错误消息。因此,配置PHP和PDO报告MySQL错误非

  • null C:\程序文件(x86)\msbuild\14.0\bin\msbuild.exe 还尝试使用C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe 我们已经创建了示例项目,并在一个服务器中进行了配置。 我们可以在日志文件中看到多种类型的错误,如 null 我不确定这里缺少什么,错误的配置,错误的msbuild??