2016-04-05 2 views

Antwort

14

S3-Dateien können riesig sein, aber Sie müssen nicht das ganze Ding holen, nur um die ersten paar Bytes zu lesen. Die S3-APIs unterstützen den HTTP-Header Range: header (see RFC 2616), der ein Bytebereichsargument verwendet.

Fügen Sie einfach einen Range: bytes=0-NN Header zu Ihrer S3-Anfrage hinzu, wobei NN die angeforderte Anzahl der zu lesenden Bytes ist und Sie nur diese Bytes abrufen, anstatt die gesamte Datei zu lesen. Jetzt können Sie eine Vorschau der 900-GB-CSV-Datei anzeigen, die Sie in einem S3-Bucket gelassen haben, ohne auf das Herunterladen der gesamten Datei warten zu müssen. Lesen Sie the full GET Object docs in Amazon Entwickler-Dokumentation.

+2

Beispiel S3-Aufruf: aws s3api get-object --bucket my_bucket - Schlüsselpfad/zu/mein/file/file1.gz file1.gz --range bytes = 1000-2000 –

2

Das AWS .Net SDK zeigt nur Bereiche mit festem Ende an (RE: public ByteRange(long start, long end)). Was, wenn ich in der Mitte anfangen und bis zum Ende lesen möchte? Ein HTTP-Bereich von Range: bytes=1000- ist absolut akzeptabel für "Start bei 1000 und lesen bis zum Ende" Ich glaube nicht, dass sie dies in der .Net-Bibliothek erlaubt haben.