Я пытаюсь сохранить файл в корзину S3.Я копирую файл во временную папку, чтобы доказать (для меня), что файл существует и доступен.Конечно, копия работает без проблем.
Последняя строка продолжает выдавать исключение, а в деталях говорится: «Ссылка на объект не установлена для экземпляра объекта».
File.Copy(fullFilePath, "C:\\Temp\\" + fullFileName);
IAmazonS3 client = null;
if (Session["s3Client"] != null) {
client = (IAmazonS3)Session["s3Client"];
} else {
client = new AmazonS3Client(RegionEndpoint.GetBySystemName(AWS_REGION));
} // if
PutObjectRequest putRequest = new PutObjectRequest {
BucketName = S3_BUCKET_NAME,
Key = fullFileName
};
using (FileStream stream = new FileStream(fullFilePath, FileMode.Open)) {
putRequest.InputStream = stream;
// Put object
PutObjectResponse response = client.PutObject(putRequest);
}
Я пробовал несколько вещей с помощью вызова S3:
- Другой ключ (пробовал слово «бла»)
- Другой контейнер
- Отправка файла в виде пути, а не потока
Не так много для меня, чтобы попробовать, так как я на самом деле только 3 поля.
Я пытаюсьоставить аутентификацию вне кода, чтобы хост-машина могла управлять им.
Есть идеи?
Большое спасибо.
Редактировать:
at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.FetchCredentials()
at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.GetCredentials()
at Amazon.Runtime.Internal.CredentialsRetriever.PreInvoke(IExecutionContext executionContext)
at Amazon.Runtime.Internal.CredentialsRetriever.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.S3.Internal.AmazonS3ExceptionHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.MetricsHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.RuntimePipeline.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.AmazonServiceClient.Invoke[TResponse](AmazonWebServiceRequest request, InvokeOptionsBase options)
at MyCode.aspx.cs:line 260