我想知道我的应用程序是否过于复杂。我正在使用AWS PHP SDK将文件上传到S3,然后使用S3事件触发一个SNS主题来处理我的文件。
我使用S3事件的原因是,我害怕在执行上载代码后立即执行处理代码;我希望验证对象是否已成功上载到S3。我担心在上传到S3之前执行的处理代码。我在这里发帖的原因是,我意识到我没有使用JS,而且PHP本身也不是异步的。
有没有人有这方面的经验?如果是这样,我是否可以安全地放弃SNS并通过处理代码运行来“假设”(可怕的)对象将在S3中,或者我是否应该继续沿着这条路径走下去,当文件在S3中可用时,使用S3事件/SNS来警告我的应用程序?
提前感谢所有人
示例代码:
$s3Client->upload("somefile.jpg");
// have no idea if this file is available yet, but...
$dataModel->process("https://s3-us-west-mock-us-url.amazonaws.com/somefile.jpg");发布于 2019-02-03 04:13:46
你能假设上传是成功的吗?当然你不能,这是一个涉及网络通信的操作,因此总是存在延迟。
上传到S3存储桶成功后,您将得到200OK响应,这意味着如果您只想等待上传完成(只需等待响应),则无需使用SNS或类似的工具。
更好的方法(如果可能)是实际使用S3事件,并为该事件订阅一个lambda函数,然后让它处理处理。这样,您就不必在应用程序中关心这一点,只需假定有其他东西(lambda)来处理它。
https://stackoverflow.com/questions/54496733
复制相似问题