【问题标题】:AWS S3 copy to bucket from remote locationAWS S3 从远程位置复制到存储桶
【发布时间】:2017-03-29 22:50:23
【问题描述】:

公共服务器上有一个large dataset(~0.5TB,multi-part here),我想将其复制到我自己的 s3 存储桶中。 aws s3 cp 似乎只适用于本地文件或基于 S3 存储桶的文件?

如何将该文件(单部分或多部分)复制到 S3 中?我可以使用 AWS CLI 还是需要其他东西?

【问题讨论】:

  • 所以...您是说有问题的数据集不在 S3 上,但您想下载并将其存储在 S3 上...对吗?
  • @Michael-sqlbot 完全正确
  • 但我是从 EC2 实例运行它,所以我不想将整个东西下载到 EC2 实例并上传到 S3,所以直接加载到 S3 就是我的意思寻找。

标签: amazon-web-services amazon-s3 aws-sdk


【解决方案1】:

无法从远程位置直接将其上传到 S3。但是您可以将远程文件的内容流式传输到您的计算机,然后传输到 S3。这意味着您将下载完整的 0.5TB 数据,但您的计算机一次只能将一小部分数据保存在内存中(也不会保存到磁盘)。这是一个简单的javascript实现:

const request = require('request')
const async = require('async')
const AWS = require('aws-sdk')
const s3 = new AWS.S3()
const Bucket = 'nyu_depth_v2'
const baseUrl = 'http://horatio.cs.nyu.edu/mit/silberman/nyu_depth_v2/'
const parallelLimit = 5
const parts = [
  'basements.zip',
  'bathrooms_part1.zip',
  'bathrooms_part2.zip',
  'bathrooms_part3.zip',
  'bathrooms_part4.zip',
  'bedrooms_part1.zip',
  'bedrooms_part2.zip',
  'bedrooms_part3.zip',
  'bedrooms_part4.zip',
  'bedrooms_part5.zip',
  'bedrooms_part6.zip',
  'bedrooms_part7.zip',
  'bookstore_part1.zip',
  'bookstore_part2.zip',
  'bookstore_part3.zip',
  'cafe.zip',
  'classrooms.zip',
  'dining_rooms_part1.zip',
  'dining_rooms_part2.zip',
  'furniture_stores.zip',
  'home_offices.zip',
  'kitchens_part1.zip',
  'kitchens_part2.zip',
  'kitchens_part3.zip',
  'libraries.zip',
  'living_rooms_part1.zip',
  'living_rooms_part2.zip',
  'living_rooms_part3.zip',
  'living_rooms_part4.zip',
  'misc_part1.zip',
  'misc_part2.zip',
  'office_kitchens.zip',
  'offices_part1.zip',
  'offices_part2.zip',
  'playrooms.zip',
  'reception_rooms.zip',
  'studies.zip',
  'study_rooms.zip'
]

async.eachLimit(parts, parallelLimit, (Key, cb) => {
  s3.upload({
    Key,
    Bucket,
    Body: request(baseUrl + Key)
  }, cb)
}, (err) => {
  if (err) console.error(err)
  else console.log('Done')
})

【讨论】:

  • 所以我猜这是要在 node.js 上运行的脚本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 2018-06-18
  • 2017-11-23
  • 2022-01-11
  • 2022-01-07
相关资源
最近更新 更多