implement official S3 SDK