Có ba cách bạn có thể tải lên một tệp:upload a file:
- Từ một ví dụ
Object
- Từ một ví dụ
Bucket
- Từ
client
Trong mỗi trường hợp, bạn phải cung cấp Filename
, đó là đường dẫn của tệp bạn muốn tải lên. Để tải xuống một tệp từ S3 cục bộ, bạn sẽ làm theo các bước tương tự như bạn đã làm khi tải lên. Nhưng trong trường hợp này, tham số Filename
sẽ ánh xạ tới đường dẫn cục bộ mong muốn của bạn.Filename
, which is the path of the file you want to upload. To download a file from S3 locally, you’ll follow similar steps as you did when uploading. But in this case, the Filename
parameter
will map to your desired local path.
00:00 Bạn cuối cùng đã sẵn sàng để tải các tệp lên S3. Có ba cách bạn có thể tải lên một tập tin. Bạn có thể làm điều này từ một trường hợp Object
, từ một trường hợp Bucket
hoặc từ client
. You’re finally ready to upload files to S3.
There are three ways you can upload a file. You can do this from an Object
instance,
from a Bucket
instance, or from the client
.
00:11 Chúng tôi sẽ tập trung vào các trường hợp Object
và Bucket
, bởi vì đây là những cách làm việc rất mạnh mẽ với API AWS. Đầu tiên, hãy để cố gắng tải lên một tệp bằng cách sử dụng thể hiện Object
.
We’re going to focus on the Object
and Bucket
instances, because these are very powerful ways of working with the AWS API. First,
let’s try to upload a file using the Object
instance.
00:22 Nhìn vào thông dịch viên, nếu bạn vẫn còn Object
2 Object
, bạn sẽ có thể chạy điều đó và bạn sẽ thấy rằng nó có Object
4 liên kết với nó, và sau đó là tên tệp cho Object
5. Tốt đấy!
Looking at the interpreter, if you still have the Object
2 Object
,
you should be able to run that and you’ll see that it has the Object
4 associated with it, and then the filename for the Object
5. That’s good!
00:37 Bởi vì sau đó, bạn chỉ có thể nói Object
6 và sau đó vượt qua trong đó Object
7. Because then, you can just say Object
6
and then pass in that Object
7.
00:48 Khi bạn chạy điều này, bạn không nên thấy bất kỳ lỗi nào và bây giờ tệp đó đã được tải lên S3. Được chứ! Vì vậy, đó là một cách để làm điều đó. Bây giờ, hãy để Lôi nhìn vào cách bạn có thể tải lên một tệp từ phiên bản Bucket
.
When you run this, you shouldn’t see any errors and now that file has been uploaded to S3. Okay!
So, that’s one way to do that. Now let’s look at how you can upload a file from the Bucket
instance.
01:03 Bạn vẫn nên có Object
9, có tên xô ở đây. Và từ đây, nó khá giống nhau. Bạn chỉ có thể nói Bucket
0, và từ đây những gì bạn sẽ cần làm là vượt qua trong một Filename
, đó là Object
7, và sau đó là Object
5, cũng là Object
7. You should still have your Object
9,
which has the bucket name here. And from here, it’s pretty similar. You can just say Bucket
0,
and from here what you’re going to need to do is pass in a Filename
, which is Object
7, and then a Object
5,
which is also Object
7.
01:29 Hãy tiếp tục và chạy điều đó. Và tôi đã gặp một lỗi ở đây vì tôi đã rời khỏi Object
5 chữ thường, vì vậy hãy để lại quay lại với điều đó Go ahead
and run that. And I’ve got an error here because I left Object
5 lowercase, so let’s go back to that
01:39 Và lần này đặt thủ đô Bucket
6. and this time put a capital Bucket
6.
01:44 Và điều đó cũng thành công. Bây giờ có vẻ lạ khi bạn phải đặt vào tên tệp hai lần, nhưng một lần là xác định tệp là gì và sau đó là lúc khác xác định cách Bucket
7 sẽ lưu trữ tệp đó trong thùng S3. Bạn có thể có được một ý tưởng cho điều này trước đây, khi chúng tôi làm việc với Bucket
8, trong đó xác định Object
4 và cũng có một Object
5 đã được xác định.
And that was successful too. Now it may seem strange that you have to put in the filename twice,
but one time is identifying what the file is and then the other time is identifying how the Bucket
7 will store that file in the
S3 bucket. You can kind of get an idea for this before, when we were working with the Bucket
8,
which identified the Object
4 and also had a Object
5 already defined.
02:09 Sau đó, khi bạn thực sự tải lên tệp, bạn phải đặt tên tệp đó để biết tệp nào sẽ thực sự tải lên. Then when you went to actually upload the file, you had to put in that filename so that it knew which file to actually upload.
02:17 Được rồi! Điều đó khá tuyệt! Bạn có thể bắt đầu tải các tệp lên các thùng mà bạn đã tạo và tất cả từ bên trong Python. Vì vậy, bây giờ, toàn bộ quan điểm của việc đặt các mặt hàng vào S3 đang có thể tải chúng ra khỏi S3. Hãy cùng xem cách làm điều đó. Tại đây, bạn sẽ quay trở lại client
1 của mình và tạo ra một Object
mới. All right! That’s pretty cool! You can start
uploading files to buckets that you’ve created and all from within Python. So now, the whole point of putting items into S3 is being able to download
them out of S3. Let’s take a look at how to do that. Here, you’re going to go back to your client
1 and create a new Object
.
02:39 Object
này sẽ được liên kết với thùng đầu tiên, vì vậy hãy vượt qua trong đó client
4 và sau đó cũng là Object
7. This Object
will be associated with the first bucket,
so pass in that client
4 and then also that Object
7.
02:48 Và lưu ý rằng đây hiện đang tìm kiếm chìa khóa đó. Vì vậy, từ đây, bạn có thể gọi client
6,
And note that this is now looking for that key. So from here, you can call client
6,
02:57 Và bây giờ bạn cần đặt một đường dẫn tệp đến nơi bạn muốn lưu trữ nó. Tôi sẽ thực hiện một số định dạng chuỗi F. Trong thư mục client
7 của tôi, tôi đã tạo một thư mục nhỏ gọi là client
8 và tôi sẽ chỉ đưa vào Object
7 để lưu nó vào đó. and now you need to put in a file path to where you want to store it.
I’m going to do some f-string formatting. In my client
7 folder I made a little folder called client
8,
and I’m just going to put in Object
7 to save it in there.
03:15 Hãy để Lừa điều hành điều này và tôi không thấy bất kỳ lỗi nào. Để xác minh rằng điều này đã hoạt động, hãy để tôi rời khỏi Python ở đây và tôi sẽ chỉ liệt kê mọi thứ trong đó Filename
0. Let’s run this—and I don’t see any errors. To verify that this worked, let me quit out of Python here and I’ll just list
everything within that Filename
0.
03:29 và mát mẻ! Có tập tin đó ngay tại đó. Để chắc chắn rằng không có gì thú vị xảy ra với nó, tôi có thể gọi ____ ____ 40, và những gì mà bắt đầu với? Một Filename
2. Và chúng tôi sẽ chỉ Filename
3 nộp đơn, và có 300 F F ngay tại đó. Đáng kinh ngạc! And cool! There’s that file right there. To make sure nothing funky
happened with it, I can call Filename
0—and what’s that start with? An Filename
2. And we’ll just Filename
3 that file out,
and there’s the 300 f’s right there. Awesome!
03:48 Hy vọng rằng, không quá phản đối. Bạn có thể có một ý tưởng về cách BOTO3 thực sự tóm tắt rất nhiều cuộc gọi API này và làm cho việc tạo xô và tải lên và tải xuống và tải xuống rất đơn giản. Đó chắc chắn là cốt lõi của việc làm việc với S3, nhưng trong video tiếp theo, bạn sẽ học cách di chuyển các đối tượng giữa các thùng. Cảm ơn đã xem. Hopefully that’s not too anticlimactic. You can get an idea of how Boto3 really abstracts away a lot of these API calls and makes it very straightforward to create buckets and upload and download files to those buckets. That’s definitely the core of working with S3, but in the next video, you’re going to learn how to move objects between buckets. Thanks for watching.
Cảm ơn rất nhiều cho hướng dẫn. Thuật ngữ xô [] là trường hợp nhạy cảm?
Tôi đã nhận được một lỗi khi cố gắng tải xuống tệp
>>> s3_resource.Object[first_bucket_name, first_file_name].download_file[f'/tmp/boto_test/{first_file_name}']
Traceback [most recent call last]:
File "", line 1, in
File "~/.local/lib/python3.6/site-packages/boto3/s3/inject.py", line 314, in object_download_file
ExtraArgs=ExtraArgs, Callback=Callback, Config=Config]