2015-09-28 11 views
5

Więc zacząłem studiować mechanizm przesyłania z AWS. Obserwując kilka innych przykładów, zauważyłem, że tak naprawdę nie otrzymałem jednej rzeczy (mimo że czytałem dokumentację w kółko, w tych konkretnych częściach). Przy tworzeniu konta AWS otrzymasz klucz. Ale także istnieje pojęcie ObjectKey.Co to jest keyName w AWS (Amazon Web Services)?

więc, biorąc pod uwagę ten przykład: http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpJava.html

szczególnie ten kawałek kodu:

private static String bucketName  = "*** Provide bucket name ***"; 
private static String keyName  = "*** Provide key ***"; 
private static String uploadFileName = "*** Provide file name ***"; 

muszę zapytać: co to nazwa_klucza reprezentować? Jest to nazwa obiektu (nazwa, która znajdzie się w wiadrze) lub jest to tajny klucz podany przy tworzeniu konta?

Odpowiedz

6

AWS S3 jest na najbardziej podstawowym poziomie, tylko key/value store. Przesyłając obiekt (plik) do S3, określasz unikalny klucz publiczny dla obiektu. W S3 klucze wyglądają jak ścieżki do plików, co może prowadzić do pewnych nieporozumień, ponieważ nie musisz robić takich rzeczy, jak tworzenie podkatalogów itp. Co oznacza, w dużym skrócie, to, że możesz przesłać plik używając klucza takiego jak /some/key/to/an/image/file.jpg bez konieczności tworzenia ścieżki /some/key/to/an/image.

Jeśli masz statyczny hosting dla swojego kubełka S3, to zaraz po przesłaniu file.jpg używając tego klucza, powinieneś być w stanie wyświetlić go w przeglądarce internetowej poprzez adres URL zgodny z https://s3-eu-west-1.amazonaws.com/<bucket_name>/some/key/to/an/image/file.jpg, w zależności od regionu że wiadro znajduje się w.

2

Klucz keyName to "name" (= unikalny identyfikator), według którego plik będzie przechowywany w wiadrze S3.

Na przykład:

private static String uploadFileName = "c:\mydir\myfile.txt"; 
private static String keyName ="mydirinbucket/myfile.txt"; 

(nb Można użyć "/" znaki używać "katalogi" w S3 wiadra)

0

W AWS, tutaj staging_path= "devel" and key = "/"+staging_path.

Powiązane problemy