profile
이력서 : https://bit.ly/simon-server-developer-resume
태그 목록
전체보기 (127)hackerrank(16)python(10)aws(10)typescript(9)ts(6)lambda(6)SQLAlchemy(6)pytest(5)django(5)Node(5)test(5)serverless(5)knex.js(4)JavaScript(4)js(4)mysql(4)mocha(4)debug(4)redis(3)Java(3)aws lambda(3)query(3)SOLID(3)node.js(3)S3(3)vscode(3)knex(3)graphql(3)BigQuery(2)error(2)AWS S3(2)Spring(2)type(2)raw query(2)discord(2)update(2)syntaxerror(2)file(2)블록체인(2)git(2)Pydantic(2)FAST API(2)env(2)ORM(2)node js(2)serverless framework(2)deploy(2)npm(1)invalid(1)탈중앙화 금융(1)push(1)BaseModel(1)shapely(1)web framework(1)이더리움(1)INSERT(1)update_forward_refs(1)console.log(1)listObjectsV2(1)the graph(1)http(1)429(1)django_settings_module(1)query builder(1)nyc(1)invalid syntax(1)image(1)Clustered Index(1)Cache(1)Sherlock and Anagrams(1)MalformedXML(1)rate limited(1)yarn(1)Index(1)unlink(1)스테이블 코인(1)acm(1)route53(1)TDD(1)app.js(1)pillow(1)Sherlock and the Valid String(1)launch.json(1)djangoORM(1)float(1)bulk(1)chai(1)Log Insight(1)ElastiCache(1)GCP(1)크로노스(1)service(1)Count Triplets(1)decorator(1)Arrays: Left Rotation(1)kronos(1)Bubble Sort(1)responsibility(1)ecs(1)New Year Chaos(1)xcrun(1)&&(1)domain(1)bdd(1)code fomatter(1)ESLint(1)git submodule(1)chat not found(1)Counting Valleys(1)Environment variables(1)bulk_update_mappings(1).build(1)aws elasticache(1)Rollback(1)mark(1)pep8(1)이더(1)https(1)infura(1)Strings: Making Anagrams(1)parametrize(1)Special String Again(1)uniswap(1)CommandLineTools(1)Paging(1)가스비(1)terra(1)MacOS(1)NextContinuationToken(1)typeError(1)Discord.js(1)conflict(1)f string(1)dai(1)chat id(1)delete(1)sendMessage(1)commit(1)homebrew(1)virtual env(1)cheerio(1)Minimum Swaps 2(1)submodule(1)Sales by Match(1)Sorting Comparator(1)operationalerror(1)Group(1)puppeteer(1)githubactions(1)synchronize_session(1)setTimeout(1)count(1)ethers.js(1)axios(1)LSP(1)repository(1)breakpoint(1)DeFI(1)incompatible(1)API Gateway(1)upload(1)thegraph(1)pycharm(1)circular references(1)remove(1)Timestamp(1)Jumping on the Clouds(1)console(1)2D Array - DS(1)bulk_insert_mappings(1)celery(1).serverless(1)runtimeExecutable(1)Web Framework Benchmarks(1)USDT(1)array(1)1000(1)poetry(1)hacker rank(1)black(1)seeding(1)luna(1)javascript debug terminal(1)db(1)venv(1)HankerRank(1)ignore(1)node-version(1)seeder(1)install(1)pipeline(1)Repeated String(1)Builder(1)js extension(1)Ransom Note(1)Database(1)graphene(1)describe()(1)seed(1)postman(1)B-tree(1)open closed principle(1)Discord Bot(1).js(1)docker compose(1)NUMERIC(1)closure(1)더 그래프(1)cloudwatch(1)manage.py(1)add(1)ether gas fee(1)EPERM(1)children(1)environment variable(1)bulk_save_objects(1)Parallel(1)IsTruncated(1)benchmark(1)stable coin(1)chat_id(1)reserved keys(1)bucket(1)migration(1)Two Strings(1)liskov substitution principle(1)ContinuationToken(1)usdc(1)forwardRef(1)secondary index(1)operation not permitted(1)first-class citizen(1)http to https(1)telegram(1)uniswapV3(1)sql(1)import(1)package(1)status code 429(1)IT(1)record(1)Subgraph(1)Alternating Characters(1)terminal(1)flush(1)

How to get over 1000 objects from s3

listObjectsV2()에 버킷 이름과 파일 경로를 담은 params 객체를 넘겨주면 최대 1000개의 파일을 가져올 수 있는데, 그보다 많은 파일들을 가져올 때 아래처럼 작성하면 된다.IsTruncated 값이 false면 더이상 응답할 파일이 없는 것이고 tru

2022년 1월 12일
·
0개의 댓글
·

MalformedXML: The XML you provided was not well-formed or did not validate against our published schema

aws s3 bucket에 올라간 파일들을 제거하면서 deleteObjects() 메서드를 사용했다. listObjectsV2()로 파일들을 가져올 때 한번 요청에 최대 1000개였는데 deleteObjects()도 마찬가지로 한번에 최대 1000개를 제거할 수 있었다

2022년 1월 12일
·
0개의 댓글
·
post-thumbnail

fast-api s3 upload test

실제 운영 환경에서 file upload API가 호출되면 담당하는 view에서 해당 file을 받고 boto3에서 제공하는 메서드까지 전달해야 한다. 결국 테스트 코드에서 file을 생성하거나 읽어와서 실제 s3 버킷의 지정된 경로에 저장되는지 확인해야 한다.그리고

2021년 4월 14일
·
0개의 댓글
·