Nowadays for efficient system design, we push messages on AWS S3, we subscribe a topic to it(AWS SNS) and then subscribe AWS SQS to it for polling (advisable method)
Now the questions are:
You can push s3 event notifications directly to SQS - I do that all the time - it works just fine.
One benefit of s3->sns->sqs over s3->sqs is the ability to 'fan out' messages down the road if the need arises, without changing the original application. S3 pushes the event to sns, sns pushes it into the s3 queue - if at some point you want another queue to receive the same messages to do additional processing you can configure that in the console or cli - and your original application never needs to get touched.
So in a nutshell, s3->sns->sqs gives you a bit of flexibility that s3->sqs does not for if/when things change, though either solution will work just fine and you would need to decide for yourself if there is any need for the flexibility, or if you would prefer/need to keep it simple; i use both methods, depending on the project.