Hướng dẫn python download and upload file - tập tin tải xuống và tải lên python

Có ba cách bạn có thể tải lên một tệp:upload a file:

  1. Từ một ví dụ Object
  2. Từ một ví dụ Bucket
  3. 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 ObjectBucket, 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 Object2 Object, bạn sẽ có thể chạy điều đó và bạn sẽ thấy rằng nó có Object4 liên kết với nó, và sau đó là tên tệp cho Object5. Tốt đấy! Looking at the interpreter, if you still have the Object2 Object, you should be able to run that and you’ll see that it has the Object4 associated with it, and then the filename for the Object5. That’s good!

00:37 Bởi vì sau đó, bạn chỉ có thể nói Object6 và sau đó vượt qua trong đó Object7. Because then, you can just say Object6 and then pass in that Object7.

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ó Object9, có tên xô ở đây. Và từ đây, nó khá giống nhau. Bạn chỉ có thể nói Bucket0, và từ đây những gì bạn sẽ cần làm là vượt qua trong một Filename, đó là Object7, và sau đó là Object5, cũng là Object7. You should still have your Object9, which has the bucket name here. And from here, it’s pretty similar. You can just say Bucket0, and from here what you’re going to need to do is pass in a Filename, which is Object7, and then a Object5, which is also Object7.

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 Object5 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 Object5 lowercase, so let’s go back to that

01:39 Và lần này đặt thủ đô Bucket6. and this time put a capital Bucket6.

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 Bucket7 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 Bucket8, trong đó xác định Object4 và cũng có một Object5 đã đượ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 Bucket7 will store that file in the S3 bucket. You can kind of get an idea for this before, when we were working with the Bucket8, which identified the Object4 and also had a Object5 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 client1 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 client1 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 đó client4 và sau đó cũng là Object7. This Object will be associated with the first bucket, so pass in that client4 and then also that Object7.

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 client6, And note that this is now looking for that key. So from here, you can call client6,

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 client7 của tôi, tôi đã tạo một thư mục nhỏ gọi là client8 và tôi sẽ chỉ đưa vào Object7 để 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 client7 folder I made a little folder called client8, and I’m just going to put in Object7 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 đó Filename0. 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 Filename0.

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 Filename2. Và chúng tôi sẽ chỉ Filename3 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 Filename0—and what’s that start with? An Filename2. And we’ll just Filename3 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.

Hướng dẫn python download and upload file - tập tin tải xuống và tải lên python

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 <module>
File "~/.local/lib/python3.6/site-packages/boto3/s3/inject.py", line 314, in object_download_file
ExtraArgs=ExtraArgs, Callback=Callback, Config=Config)