【问题标题】:direct upload from google drive to amazon s3从谷歌驱动器直接上传到亚马逊s3
【发布时间】:2015-10-19 13:04:07
【问题描述】:

我的 webapp 中有一个有效的上传表单,允许用户从他们的计算机上传文件。 文件直接上传到amazon s3,无需先经过我的服务器

这就是我的表单的样子,我使用的是 jquery 文件上传插件。

    <form class="startfileupload" action="//s3-us-west-2.amazonaws.com/<?php echo AMAZON_S3_BUCKET ?>/" method="POST" enctype="multipart/form-data" >
        <input type="hidden" name="key" value="<?php echo $file_name;?>" >
        <input type="hidden" name="AWSAccessKeyId" value="<?php echo AMAZON_KEY ?>">
        <input type="hidden" name="acl" value="private">
        <input type="hidden" name="policy" value="<?php echo $aws['base64Policy']; ?>">
        <input type="hidden" name="signature" value="<?php echo $aws['signature']; ?>">
        <input id="uploadinput" type="file" accept=".xls,.xlsx,.doc,.docx,.ppt,.pptx,.jpg,.jpeg,.png,.bmp,
            .pdf, .zip" name="file" multiple=""/>

我想让用户可以选择从他们的谷歌驱动器中选择文件,使用驱动器 api 我添加了谷歌选择器,让用户从那里选择文件。

在他们选择文件后,我在回调中获取文件元数据(包括文件 url)。

如何使用它将文件直接上传到 s3?

我不想将文件上传到我的服务器然后将其复制到 s3,我想将文件直接上传到 s3。不需要在客户端下载文件然后上传就可以了吗?

谢谢

【问题讨论】:

    标签: php amazon-web-services file-upload amazon-s3 google-drive-api


    【解决方案1】:

    将文件上传到 S3 的唯一方法是将 文件 发送到 S3。

    S3 无法从外部 URL 获取对象。

    直接从 Google 下载到您的服务器,然后上传到 S3,或者您可以使用通过 AWS API Gateway 调用的 AWS Lambda 在后台处理实际的下载/上传传输(同步或异步)。

    【讨论】:

    • 好的,我明白了,这是一个后续问题,我如何使用我获得的链接将该文件下载到我的服务器?服务器没有使用用户凭据进行身份验证,那么他如何访问文件来下载它?
    • 你不知道。您使用 Javascript 在客户端下载它,然后发布到 s3。涉及到服务器。
    • 有没有办法同步 Google Drive 和 S3?
    • 这是通过什么方式解决的吗?我正在考虑为此使用 Rclone。
    猜你喜欢
    • 1970-01-01
    • 2017-02-15
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2016-01-20
    • 1970-01-01
    相关资源
    最近更新 更多