如何从Web UI将文件直接上传到s3?

时间:2018-08-03 09:37:47

标签: php html5 amazon-web-services amazon-s3 file-upload

我有一个php代码,可以将文件从本地系统上传到AWS S3。而且我有php网页,使用户可以上传文件并提交。现在我的要求是我需要将用户上传的文件直接上传到AWS S3。有没有一种方法可以将文件直接从UI上传到S3,而不将其保留在系统中?如果有办法的话。

谢谢。

1 个答案:

答案 0 :(得分:0)

是的,您可以在不使用sdk-for-javascript

的情况下保持任何系统的状态下完成此操作

您可以参考确实做到这一点的sample web page

以下是该页面的代码段

function addPhoto(albumName) {
  var files = document.getElementById('photoupload').files;
  if (!files.length) {
    return alert('Please choose a file to upload first.');
  }
  var file = files[0];
  var fileName = file.name;
  var albumPhotosKey = encodeURIComponent(albumName) + '//';

  var photoKey = albumPhotosKey + fileName;
  s3.upload({
    Key: photoKey,
    Body: file,
    ACL: 'public-read'
  }, function(err, data) {
    if (err) {
      return alert('There was an error uploading your photo: ', err.message);
    }
    alert('Successfully uploaded photo.');
    viewAlbum(albumName);
  });
}

要从浏览器脚本向SDK设置凭据,请按以下推荐顺序进行操作:

  1. 使用Amazon Cognito身份验证用户身份并提供凭据
  2. 使用网络联合身份
  3. 硬编码在脚本中

有关设置凭据的更多详细信息,请参见herehere