我想在.NET Core項目中使用Amazon S3上傳文件。有沒有關於如何創建和使用AmazonS3客戶端的參考?我在AmazonS3文檔中找到的所有.Net Core都是這樣(http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-netcore.html),這不是非常有用。Amazon S3 .NET Core如何上傳文件
2
A
回答
2
每AWS SDK文檔,在2016年後期
https://aws.amazon.com/sdk-for-net/
所以指令增加了對文件上傳到S3應該是相同的爲.NET任何其他指令對.NET核心的支持。
「getting started" guide for the AWS SDK for .Net實際上就是您描述的將文件連接並上傳到S3的情況 - 並且如果您安裝了」AWS Toolkit for Visual Studio「(它應該是。支持.Net AWS SDK)
安裝因此,所有你需要做的就是打開Visual Studio,發現其樣本S3的項目,或you can look at it here:
// simple object put
PutObjectRequest request = new PutObjectRequest()
{
ContentBody = "this is a test",
BucketName = bucketName,
Key = keyName
};
PutObjectResponse response = client.PutObject(request);
這裏假設你有實例化的Amazon.S3。 AmazonS3Client包含名稱空間後,並使用您自己的憑據配置它。
1
對於.netcore項目中的簡單文件上傳,我遵循以下link。
完成簡單的文件上傳程序後,我按照this和this鏈接的文檔,這些鏈接非常有幫助。以下兩個鏈接也有助於快速啓動。
這是在控制器中進行文件上傳我的最終代碼段(I跳過視圖部分,其在所述連桿精心解釋上述共享) 。
[HttpPost("UploadFiles")]
public IActionResult UploadFiles(List<IFormFile> files)
{
long size = files.Sum(f => f.Length);
foreach (var formFile in files)
{
if (formFile.Length > 0)
{
var filename = ContentDispositionHeaderValue
.Parse(formFile.ContentDisposition)
.FileName
.TrimStart().ToString();
filename = _hostingEnvironment.WebRootPath + [email protected]"\uploads" + [email protected]"\{formFile.FileName}";
size += formFile.Length;
using (var fs = System.IO.File.Create(filename))
{
formFile.CopyTo(fs);
fs.Flush();
}//these code snippets saves the uploaded files to the project directory
uploadToS3(filename);//this is the method to upload saved file to S3
}
}
return RedirectToAction("Index", "Library");
}
這是將文件上傳到亞馬遜S3的方法:
private IHostingEnvironment _hostingEnvironment;
private AmazonS3Client _s3Client = new AmazonS3Client(RegionEndpoint.EUWest2);
private string _bucketName = "mis-pdf-library";//this is my Amazon Bucket name
private static string _bucketSubdirectory = String.Empty;
public UploadController(IHostingEnvironment environment)
{
_hostingEnvironment = environment;
}
public void uploadToS3(string filePath)
{
try
{
TransferUtility fileTransferUtility = new
TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.EUWest2));
string bucketName;
if (_bucketSubdirectory == "" || _bucketSubdirectory == null)
{
bucketName = _bucketName; //no subdirectory just bucket name
}
else
{ // subdirectory and bucket name
bucketName = _bucketName + @"/" + _bucketSubdirectory;
}
// 1. Upload a file, file name is used as the object key name.
fileTransferUtility.Upload(filePath, bucketName);
Console.WriteLine("Upload 1 completed");
}
catch (AmazonS3Exception s3Exception)
{
Console.WriteLine(s3Exception.Message,
s3Exception.InnerException);
}
}
這一切都是爲了在亞馬遜S3存儲桶上傳文件。我在.netcore 2.0上工作,並且不要忘記添加必要的依賴關係來使用Amazon API。它們是:
- AWSSDK.Core
- AWSSDK.Extensions.NETCore.Setup
- AWSSDK.S3
希望,這將有助於。
相關問題
- 1. 如何將文件上傳到Amazon S3?
- 2. 上傳文件到Amazon S3
- 3. 將多個文件上傳到Amazon S3
- 4. 如何將文件夾與子文件夾上傳到amazon s3?
- 5. 使用.Net客戶端取消文件上傳,用於Amazon S3
- 6. 將大文件上傳到Amazon S3
- 7. 上傳文件到Amazon S3 PUT
- 8. 上傳到Amazon S3時命名文件
- 9. 上傳發布文件到Amazon S3
- 10. 將文件上傳到Amazon S3
- 11. 大文件上傳到Amazon S3
- 12. 使用FTP在Amazon S3上傳文件
- 13. 用Delphi將文件上傳到Amazon S3
- 14. Amazon S3上傳文件並獲取URL
- 15. 將Android文件上傳到Amazon S3
- 16. 如何將上傳的文件傳遞到amazon s3?
- 17. 如何將選定的文件從Android上傳到Amazon S3
- 18. 如何將文件從網絡上傳到Amazon S3?
- 19. 如何獲取文件的上傳日期Amazon S3,AWS IOS SDK
- 20. 如何將大於5GB的文件上傳到Amazon S3?
- 21. 如何上傳文件限制到Amazon S3與Slingshot.createDirective
- 22. 如何將文件遠程上傳到Amazon S3?
- 23. 如何使用Ruby on Rails 2.3將文件上傳到Amazon S3?
- 24. 如何使用Meteor將文件上傳到Amazon S3?
- 25. 如何防止使用Amazon S3進行雙重文件上傳?
- 26. Rails Amazon S3如何創建文件上傳進度欄?
- 27. 如何將文件上傳到amazon s3並獲取鏈接?
- 28. 如何取消上傳到Amazon S3的文件?
- 29. 如何通過samba將文件上傳到Amazon S3服務器?
- 30. 如何使用URLFetchService將文件從GAE上傳到Amazon S3?
@ LP13我已經看到了你的問題,所以我認爲你可以對我的問題有幫助。 – kostas
關於如何上傳文件,你是什麼意思?上傳到AWS/S3的文件是相同的,與您使用哪種語言無關。它是一個Restful API,可以與純HTTP協同工作。因此,任何編程語言或環境中的任何Web客戶端都可以工作,甚至可以從命令行中捲曲。一個簡單的谷歌查詢結束了[這裏](http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpREST.html) – Tseng
在.NET Framework中,它可以很好地處理AWSSDK。在.NET Core中,我應該將它安裝爲中間件,當我嘗試時,沒有任何工作正常。 – kostas