【问题标题】:Upload a file to S3 Amazon from Windows application?从 Windows 应用程序将文件上传到 S3 Amazon?
【发布时间】:2013-02-13 08:57:10
【问题描述】:

我是 Amazon S3 的新手,在搜索了 Amazon 和许多网站后,我取得了一些进展。

我正在创建一个从应用程序上传文件的窗口。我尝试使用以下代码,但它没有上传文件,也没有收到任何错误。

如果我评论 .withKey 属性,则文件将上传到存储桶的根目录,但我想上传到文件夹中的特定文件夹。

Try
        Dim fileTransferUtility As New TransferUtility(client)
        Dim request As TransferUtilityUploadRequest = New TransferUtilityUploadRequest
        Dim S3_KEY As String = "MitsTest/CVs"  'I want to upload file to CVs folder


        With request
            .BucketName = "mybucketname"
            .WithKey(S3_KEY)
            .WithFilePath("C:\Users\mitesh\Desktop\s3.txt")
            .WithTimeout(FIVE_MINUTES)
        End With
        fileTransferUtility.Upload(request)

    Catch ex As Exception

    Finally

    End Try

我也尝试过使用以下相同的结果,我没有收到任何错误但文件没有上传。

Dim Filepath = "C:\Users\mitesh\Desktop\s3.txt"
Dim FolderName = "MitsTest/CVs/"
Dim PutRequest As New PutObjectRequest()

    Try
        With PutRequest
            .WithBucketName("mybucketname")
            '.WithKey(FolderName + "/" + FilePath)
            .WithKey(FolderName)
            .WithFilePath(FilePath)
            .StorageClass = S3StorageClass.Standard
            .ServerSideEncryptionMethod = ServerSideEncryptionMethod.None
            '.WithContentBody(String.Empty)
            Dim response As S3Response = client.PutObject(PutRequest)
            response.Dispose()

        End With

    Catch ex As Exception
        Stop
    End Try

如果我取消注释这一行 '.WithKey(FolderName + "/" + FilePath) 并从文件夹名称中删除正斜杠(/),然后我得到“我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。”错误。

我在这里遗漏了什么或做错了什么?任何帮助将不胜感激。

问候

米特什

【问题讨论】:

    标签: vb.net amazon-web-services amazon-s3


    【解决方案1】:

    您收到签名错误的原因是“C:\users..”中的反斜杠字符对于密钥名称无效。您应该将它们替换为正斜杠或为键名使用不同的值。

    在您的第一个示例中,您实际上是在尝试上传到“MitsTest/CVs”键。您需要像这样附加文件的名称:

    .WithKey(S3_KEY+ "/" + "s3.txt")
    

    【讨论】:

    • 我自己整理好了。这是其他人的解决方案。解决方案是将文件名添加到文件夹名称。 UploadFileToS3("C:\Users\mitesh\Desktop\s3.txt", "MitsTest/CVs/s3.txt") Dim Filepath = "C:\Users\mitesh\Desktop\s3.txt" Dim FolderName = "MitsTest/ CVs/s3.txt"
    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 2015-12-10
    • 2015-10-03
    • 2011-07-21
    • 2014-05-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多