0

私は Amazon S3 を初めて使用し、Amazon や多くのサイトを検索した後、ある程度の進歩を遂げました。

ファイルをアップロードするアプリケーションから Windows を作成しています。次のコードを試してみましたが、ファイルがアップロードされず、エラーも発生しません。

.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) のコメントを外し、フォルダー名からスラッシュ (/) を削除すると、"The request signature we Calculated does not match the signature you provided. Check your key and署名方法。」エラー。

ここで何が欠けているか、間違っていますか? どんな助けでも本当に感謝しています。

よろしく

ミテシュ

4

1 に答える 1

0

署名エラーが発生する理由は、「C:\users..」のバック スラッシュ文字がキー名として無効であるためです。それらをスラッシュに置き換えるか、キー名に別の値を使用する必要があります。

最初の例では、実際に「MitsTest/CVs」キーにアップロードしようとしています。次のようにファイルの名前を追加する必要があります。

.WithKey(S3_KEY+ "/" + "s3.txt")
于 2013-02-13T00:57:10.393 に答える