Ich bin müde von all diesen "upload to S3" Beispiele und Tutorials, die nicht funktionieren, kann mir jemand nur ein Beispiel, das einfach funktioniert und ist super einfach?So laden Sie eine Datei auf Amazon S3 super einfach mit C#
Antwort
auch hier sind die Anweisung, die Sie folgen müssen, um ein voll funktionsfähiges Demo-Programm zu erhalten ...
1-Laden und das SDK Amazon Web Service für .NET installieren, die Sie in finden (http://aws.amazon.com/sdk-for-net/). weil ich visual studio 2010 habe, entscheide ich mich, das 3.5 .NET SDK zu installieren.
2- Öffnen Sie Visual Studio und ein neues Projekt, ich habe Visual Studio 2010 und ich verwende ein Konsolenanwendungsprojekt.
3- Verweis auf AWSSDK.dll hinzufügen, wird es mit dem Amazon Web Service SDK oben installiert, in meinem System befindet sich die DLL in "C: \ Programme (x86) \ AWS SDK für .NET \ bin \ Net35 \ AWSSDK.dll ".
4- eine neue Klassendatei machen, nennen es „AmazonUploader“ hier der vollständige Code der Klasse:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Amazon;
using Amazon.S3;
using Amazon.S3.Transfer;
namespace UploadToS3Demo
{
public class AmazonUploader
{
public bool sendMyFileToS3(string localFilePath, string bucketName, string subDirectoryInBucket, string fileNameInS3)
{
// input explained :
// localFilePath = the full local file path e.g. "c:\mydir\mysubdir\myfilename.zip"
// bucketName : the name of the bucket in S3 ,the bucket should be alreadt created
// subDirectoryInBucket : if this string is not empty the file will be uploaded to
// a subdirectory with this name
// fileNameInS3 = the file name in the S3
// create an instance of IAmazonS3 class ,in my case i choose RegionEndpoint.EUWest1
// you can change that to APNortheast1 , APSoutheast1 , APSoutheast2 , CNNorth1
// SAEast1 , USEast1 , USGovCloudWest1 , USWest1 , USWest2 . this choice will not
// store your file in a different cloud storage but (i think) it differ in performance
// depending on your location
IAmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(RegionEndpoint.EUWest1);
// create a TransferUtility instance passing it the IAmazonS3 created in the first step
TransferUtility utility = new TransferUtility(client);
// making a TransferUtilityUploadRequest instance
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
if (subDirectoryInBucket == "" || subDirectoryInBucket == null)
{
request.BucketName = bucketName; //no subdirectory just bucket name
}
else
{ // subdirectory and bucket name
request.BucketName = bucketName + @"/" + subDirectoryInBucket;
}
request.Key = fileNameInS3 ; //file name up in S3
request.FilePath = localFilePath; //local file name
utility.Upload(request); //commensing the transfer
return true; //indicate that the file was sent
}
}
}
5- eine Konfigurationsdatei hinzufügen: direkt auf Ihrem Projekt klicken Sie im Projektmappen-Explorer, und wählen Sie "add" -> "new item", dann aus der Liste den Typ "Application configuration file" auswählen und auf "add" klicken. Eine Datei namens "App.config" wird zur Lösung hinzugefügt.
6- Bearbeiten Sie die Datei app.config: Doppelklicken Sie im Lösungsexplorer auf die Datei "app.config". Das Bearbeitungsmenü wird angezeigt. Ersetzen Sie den gesamten Text mit dem folgenden Text:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="AWSProfileName" value="profile1"/>
<add key="AWSAccessKey" value="your Access Key goes here"/>
<add key="AWSSecretKey" value="your Secret Key goes here"/>
</appSettings>
</configuration>
Sie den obigen Text zu ändern, haben Sie Ihre Amazon Access Key ID und Geheimschlüssel zu reflektieren.
7- jetzt in der Datei Program.cs (nicht vergessen, dies ist eine Konsolenanwendung) schreiben Sie den folgenden Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace UploadToS3Demo
{
class Program
{
static void Main(string[] args)
{
// preparing our file and directory names
string fileToBackup = @"d:\mybackupFile.zip" ; // test file
string myBucketName = "mys3bucketname"; //your s3 bucket name goes here
string s3DirectoryName = "justdemodirectory";
string s3FileName = @"mybackupFile uploaded in 12-9-2014.zip";
AmazonUploader myUploader = new AmazonUploader();
myUploader.sendMyFileToS3(fileToBackup, myBucketName, s3DirectoryName, s3FileName);
}
}
}
8- die Saiten in dem Code ersetzen oben mit Ihren eigenen Daten
9-add Fehlerkorrektur und Ihr Programm ist bereit
Die Lösung von @Docesam ist für eine alte Version von AWSSDK. Hier ist ein Beispiel mit der aktuellen Dokumentation von AmazonS3:
1) Öffnen Sie zuerst Visual Studio (Ich verwende VS2015) und erstellen Sie ein neues Projekt -> ASP.NET Web Application -> MVC.
2) Durchsuchen Sie in Nuget Paket verwalten, das Paket AWSSDK.S3 und installieren Sie es.
3) Jetzt eine Klasse erstellen AmazonS3Uploader
genannt, dann diesen Code kopieren und einfügen:
using System;
using Amazon.S3;
using Amazon.S3.Model;
namespace AmazonS3Demo
{
public class AmazonS3Uploader
{
private string bucketName = "your-amazon-s3-bucket";
private string keyName = "the-name-of-your-file";
private string filePath = "C:\\Users\\yourUserName\\Desktop\\myImageToUpload.jpg";
public void UploadFile()
{
var client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1);
try
{
PutObjectRequest putRequest = new PutObjectRequest
{
BucketName = bucketName,
Key = keyName,
FilePath = filePath,
ContentType = "text/plain"
};
PutObjectResponse response = client.PutObject(putRequest);
}
catch (AmazonS3Exception amazonS3Exception)
{
if (amazonS3Exception.ErrorCode != null &&
(amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId")
||
amazonS3Exception.ErrorCode.Equals("InvalidSecurity")))
{
throw new Exception("Check the provided AWS Credentials.");
}
else
{
throw new Exception("Error occurred: " + amazonS3Exception.Message);
}
}
}
}
}
4) Bearbeiten Sie Ihre Web.config-Datei Hinzufügen der nächsten Zeilen innerhalb von <appSettings></appSettings>
:
<add key="AWSProfileName" value="any name for your profile"/>
<add key="AWSAccessKey" value="your Access Key goes here"/>
<add key="AWSSecretKey" value="your Secret Key goes here"/>
5) Rufen Sie nun Ihre Methode UploadFile
von HomeController.cs testen:
public class HomeController : Controller
{
public ActionResult Index()
{
AmazonS3Uploader amazonS3 = new AmazonS3Uploader();
amazonS3.UploadFile();
return View();
}
....
6) Finden Sie Ihre Datei in Ihrem Amazon S3 Eimer und das ist alles.
mit Ihrer Lösung wie kann Bild komprimieren und dann nach dem Upload Bild auf dem Server FilePath = filePath hier eine Idee? – coderwill
Ich habe versucht, Ihren Code und es funktioniert gut, aber ich muss vor dem Bildkomprimierung und dann nach dem Upload Bild hochladen, aber wie kann ich das nicht Idee so können Sie mir bitte helfen – coderwill
Coderwill, versuchen Sie die API von https: // Tinypng .com /, vielleicht suchst du das. – mejiamanuel57
- 1. So laden Sie eine Datei auf Amazon S3 und erhalten die URL als Antwort mit iOS
- 2. So lesen Sie Remote-Video auf Amazon S3 mit ffmpeg
- 3. Laden Sie mehrere Bilddaten aus s3 Amazon
- 4. Büroklammer - eine Datei aus Amazon S3 löschen?
- 5. Laden Sie Bilder auf Amazon S3 hoch. Quellcode
- 6. Ordneraktion Mit Amazon s3
- 7. So laden Sie eine Datei in asp.net mit C#
- 8. Amazon S3 Datei ohne Erweiterung
- 9. So laden Sie eine Datei mit curl
- 10. amazon s3 Datei hochladen Zeitüberschreitung
- 11. Laden Sie eine Amazon EC2 AMI herunter?
- 12. So laden Sie Dateien von Android auf Amazon S3 OHNE Verwendung des SDK
- 13. Nodejs Amazon S3 Datei Hochladen
- 14. C# -Code GZIP und laden einen String in Amazon S3
- 15. Amazon S3 Rename Objects Objective C Mit
- 16. Doppelte Datei in Amazon S3
- 17. EntityTooLarge Fehler, wenn eine 5G-Datei auf Amazon S3
- 18. Amazon s3 Preise
- 19. Versuchen, Metadaten auf Amazon S3-Datei mit s3cmd
- 20. Amazon S3 ändern Datei herunterladen Name
- 21. Wie erstelle ich eine temporäre URL, um eine Datei mit Boto Library auf Amazon S3 hochzuladen?
- 22. Laden Sie eine apk-Datei von S3 mit dem DownloadManager herunter
- 23. php konvertieren Bilder und laden Sie zu Amazon s3
- 24. Hochladen auf Amazon S3 mit cURL/libcurl
- 25. Servlet Lesen von Amazon S3 so langsam
- 26. Amazon S3-Berechtigungen
- 27. Browserbasierte Uploads zu Amazon S3?
- 28. Redis, AOF-Datei und Amazon S3
- 29. Datei-Download-Dialog für Fotos gehostet auf Amazon S3
- 30. Amazon S3 CORS PUT nicht
Dank für Antwort, aber gibt true zurück, um Erfolg anzuzeigen Betrieb ist schrecklich und unnötig in diesem Beispiel. –
, also schlagen Sie vor, Ausnahme auszulösen, wenn irgendein Fehler, richtig? – docesam
Die Schritte 1 und 3 können ersetzt werden, indem Sie AWSSDK mit NuGet erhalten. –