Ich bin auf der Suche nach einem Dienst zum Hochladen von Videos und Bildern von meinen mobilen Anwendungen (Frontend). Ich habe von Amazon S3 und CloudFront gehört. Ich suche nach einem Dienst, der sie speichert, und kann auch prüfen, ob sie bestimmte Kriterien erfüllen (z. B. maximale Dateigröße von 3 MB pro Bild) und einen Fehler an den Client zurücksenden, wenn die Datei nicht übereinstimmt das Kriterium. Bietet Amazon S3 oder CloudFront dies? Wenn nicht, gibt es einen anderen empfohlenen Service dafür?Dienst zum Hochladen von Bildern und Videos (S3, CloudFront usw.)
0
A
Antwort
2
Sie könnten das AWS SDK verwenden. Hier folgt ein Beispiel für die Java-Version (Amazon bietet SDKs für verschiedene Sprachen):
/**
* It stores the given file name in S3 and returns the key under which the file has been stored
* @param resource
* @param bucketName
* @return
*/
public String storeProfileImage(File resource, String bucketName, String username) {
String resourceUrl = null;
if (!resource.exists()) {
throw new IllegalArgumentException("The file " + resource.getAbsolutePath() + " doesn't exist");
}
long lengthInBytes = resource.length();
//For demo purposes. You should use a configurable property for the max size
if (lengthInBytes > (3 * 1024)) {
//Your error handling here
}
AccessControlList acl = new AccessControlList();
acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);
String key = username + "/profilePicture." + FilenameUtils.getExtension(resource.getName());
try {
s3Client.putObject(new PutObjectRequest(bucketName, key, resource).withAccessControlList(acl));
resourceUrl = s3Client.getResourceUrl(bucketName, key);
} catch (AmazonClientException ace) {
LOG.error("A client exception occurred while trying to store the profile" +
" image {} on S3. The profile image won't be stored", resource.getAbsolutePath(), ace);
}
return resourceUrl;
}
Sie können auch andere Operationen durchführen, zum Beispiel Überprüfen Sie, ob der Eimer existiert, bevor Sie das Bild speichern
/**
* Returns the root URL where the bucket name is located.
* <p>Please note that the URL does not contain the bucket name</p>
* @param bucketName The bucket name
* @return the root URL where the bucket name is located.
*/
public String ensureBucketExists(String bucketName) {
String bucketUrl = null;
try {
if (!s3Client.doesBucketExist(bucketName)) {
LOG.warn("Bucket {} doesn't exists...Creating one");
s3Client.createBucket(bucketName);
LOG.info("Created bucket: {}", bucketName);
}
bucketUrl = s3Client.getResourceUrl(bucketName, null) + bucketName;
} catch (AmazonClientException ace) {
LOG.error("An error occurred while connecting to S3. Will not execute action" +
" for bucket: {}", bucketName, ace);
}
return bucketUrl;
}
Verwandte Themen
- 1. Ionic Hochladen von Videos auf S3
- 2. content-type zum Hochladen von SVG-Bildern nach AWS S3
- 3. Einfachste Lösung zum Hochladen von Bildern in den Cloud-Dienst
- 4. RESTful WCF-Dienst Hochladen von Bildern Problem
- 5. Beste Möglichkeit zum Zuschneiden und Hochladen von Bildern mit Express?
- 6. Benötigen wir eine Verzeichnisstrukturlogik zum Speichern von Millionen von Bildern auf Amazon S3/Cloudfront?
- 7. Cloudfront leitet zum S3-Endpunkt um
- 8. Videos Datei kann nicht mit PHP s3 Klasse s3 Hochladen
- 9. Kann CarrierWave auf Amazon S3 hochladen, aber über CloudFront bereitstellen?
- 10. Schienen konfigurieren Carrierwave mit S3 und Cloudfront
- 11. Hochladen und Speichern von Bildern
- 12. Wie verwende ich AWS S3 zum Speichern von hochgeladenen Bildern?
- 13. Medien herunterladen/upload in S3 + Cloudfront
- 14. Streaming Video - jwplayer, amazon s3 und cloudfront
- 15. Zugriff auf S3-Speicher von EC2 zum Speichern von Bildern und Anzeigen von Bildern
- 16. Cross-Domain-Problem :: mit aws ec2, s3 und cloudfront
- 17. Korrekte Berechtigungen zum Hochladen auf Amazon S3
- 18. Zuschneiden und Hochladen von Bildern in eckigen
- 19. Amazon S3 und Cloudfront - Publish Datei hochgeladen als gehasht Dateiname
- 20. Carrierwave mit S3 und Cloudfront zeigt keine Bilder an
- 21. Hochladen von Bildern von ASP.NET zum godaddy Dateisystem
- 22. Cloudfront wird keine Verfallsüberschrift von S3 Origin festlegen
- 23. Verwenden von Cloudfront mit Django S3Boto
- 24. Android Intent für die Aufnahme von Bildern und Videos?
- 25. AWS Cloudfront, die zu S3-Bucket umleitet
- 26. Wie beschleunige ich meine Wordpress-Site (EC2, CloudFront, S3)?
- 27. Hochladen von Bildern ios mit
- 28. Codeigniter: Hochladen von Bildern Validierung
- 29. Hochladen von Bildern Auflösung Probleme
- 30. Verwenden von PHP zum Hochladen auf Amazon S3
vielen Dank. Haben Sie FileStack.com jemals ausprobiert? –
Nein, ich bin ein Fan von Amazon Web Services :-) Oh, BTW, du hast nach CloudFront gefragt. CloudFront ist ein Content Distribution Network (CDN). Solange Sie also Ihre Dateien in einem S3-Bucket ablegen und dann eine CF-Distribution erstellen, die diesen Bucket verwendet, wird der Inhalt für Ihre Nutzer vom nächstgelegenen Standort an sie geliefert. –